我正在尝试在我的本地服务器(使用Apache的OS X Mavericks)中进行此重写工作,并且它似乎不起作用,只有在条件中包含正斜杠时才会:
RewriteRule ^procedures/new$ procedure.php [L,QSA]
这应该重写http://www.example.com/procedures/new
以呈现http://www.example.com/procedure.php
,但会返回404。
如果我用任何其他字符替换正斜杠,它就可以正常工作:
RewriteRule ^procedures-new$ procedure.php [L,QSA]
这会正确地重写http://www.example.com/procedures-new
。
似乎mod_rewrite不接受正斜杠作为输入。关于这个的任何想法?
整个文件:
<IfModule mod_rewrite.c>
RewriteEngine On
Options +MultiViews
Options +FollowSymLinks
RewriteBase /
RewriteRule ^procedures/new$ procedure.php [L,QSA]
</IfModule>
答案 0 :(得分:0)
就像在黑暗中拍摄一样,尝试关闭Multiviews。如果404是由apache生成的,这可能不是问题,但如果它是由procedure.php生成的,也许它不喜欢PATH_INFO?
Options -Multiviews