【发布时间】:2012-03-20 19:36:01
【问题描述】:
我在主页上有一个链接到
www.example.com/test
我在 pages 目录中有一个页面,名为 test.php
这是我的 .htaccess 的样子:
RewriteBase /
RewriteEngine on
RewriteCond pages/%{REQUEST_FILENAME}.php -f [NC]
RewriteRule ^(.*?)$ pages/$1.php
现在,我可以让它与RewriteRule ^test$ pages/test.php 一起工作,但只要我输入正则表达式,它就不起作用了。此外, RewriteCond 规则似乎也不起作用。你能想到什么解决方案?我尝试添加Options +FollowSymlinks -MultiViews,但没有成功。
更新
如果我将 test.php 添加到主目录,然后将 RewriteCond pages/%{REQUEST_FILENAME}.php -f [NC] 更改为 RewriteCond %{REQUEST_FILENAME}.php -f [NC] 然后它可以工作;所以这就是问题所在。
我不知道如何检查文件是否存在于pages 目录中。
【问题讨论】:
-
发生了什么?您看到的是“内部服务器错误”还是“重定向循环”?
-
是的,具体的错误很好。
-
错误404。找不到页面。
-
@bkconrad 没用。它不会在 pages 目录中检查文件,这是它需要做的。
标签: php .htaccess mod-rewrite