【发布时间】:2014-06-29 13:41:34
【问题描述】:
我有以下 htacces 来重写一个精确的 URL(views/index.php 到 views/index.xml):
RewriteEngine On
RewriteRule ^/views/index\.php$ /views/index.xml [L]
忘记\ 并输入^/views/index.php$ 太容易了,允许/views/indexXphp 和/views/index/php 而不仅仅是/views/index.php.
在我的情况下,使用完全匹配而不是正则表达式很好,所以这是一种告诉 Apache 对于下面的所有 RewriteRules / 对于这个 RewriteRule,点表示 .不是任何字符,所以点不会被转义。
那么,有没有办法让 /views/index.php 完全匹配而无需转义点?
【问题讨论】:
-
为什么会有?在正则表达式中,
.匹配任何字符(换行符除外,在某些情况下)。如果要匹配.,只需使用\.。搜索和寻找解决方法可能是浪费时间。即使有一种方式,我还是建议你坚持传统的逃生路线,这样以后就不会有任何问题了。 -
精确匹配方便。但是,如果重要的话,使用
RewriteCond和RewriteRule实现 1 个重定向的速度是使用单个RewriteRule的两倍。
标签: regex apache .htaccess mod-rewrite