简单的mod_rewritten url添加尾部斜杠并显示错误页面

时间:2014-05-10 22:46:56

标签: php .htaccess url mod-rewrite

我有一个简单的.htaccess文件,其中包含以下代码:

RewriteBase /

RewriteEngine on
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteCond %{REQUEST_URI} !/$
RewriteRule ^(.*)$ $1\.php [L]

除此之外,在根目录中,我有几个文件(home.phpabout.phpgames.phpemail.phpsearch-me.php)应显示为mywebsite.com/homemywebsite.com/email等... home.phpabout.phpemail.php都可以正常工作,但由于某些奇怪的原因,games.phpsearch-me.php在网址末尾添加一个尾部斜杠并显示错误页面:

403 Forbidden

games.php没有什么特别之处,除了它有几个<iframes> LOTS 的javascript,这使得它有点慢。

search-me.php同时使用$_GET$_POST,具体取决于在上一页上按下了哪个提交按钮。对于此页面,它显示?和变量之前的尾部斜杠,但显示相同的错误页面。

有谁知道这是为什么?如果您需要更多信息,请与我们联系。我试图考虑可能导致它的所有事情,但事实上它是games.php,它与home.phpabout.php没有任何不同之处因为全局变量输入($_GET$_POST),它似乎不是。

编辑:我似乎有一个名为games/search-me/的目录,这当然是为什么会产生错误。那么,我现在的问题是,是否有可能有一个目录和一个同名的文件,或者总是会导致错误?

1 个答案:

答案 0 :(得分:0)

将此替换为此规则:

RewriteEngine on

RewriteCond %{DOCUMENT_ROOT}/$1\.php -f [NC]
RewriteRule ^(.+?)/?$ /$1.php [L]