我正在尝试使用Apache中的.htaccess为我的网站制作搜索引擎友好的网址
我想将网址http://localhost/simple_blog/tmp
重定向到
http://localhost/simple_blog/tmp.php
这是我的重写规则
RewriteEngine On # Turn on the rewriting engine
RewriteRule ^tmp/?$ tmp.php [NC,L]
使用
时效果很好 http://localhost/simple_blog/tmp/
或
http://localhost/simple_blog/tmp
但是当我使用
时 http://localhost/simple_blog/tmp.
为什么会重定向到
http://localhost/simple_blog/tmp.php
我预计它应该抛出404因为根据正则表达式它应该在开头匹配'tmp'
而'/'是可选的然后结束字符串
正则表达式中是否有错误?
答案 0 :(得分:1)
^
断言字符串开头的位置,即http://...
?
量词确实使/
成为可选项。
所以我认为正确的正则表达式将tmp/?$
用于你的目的......技术上应该有效。我不确定PHP如何处理正则表达式。
您也可以在正则表达式结束时尝试使用tmp/?(?!\.+)$
这样的否定前瞻