我有一个简单的.htaccess文件,其中包含以下代码:
RewriteBase /
RewriteEngine on
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteCond %{REQUEST_URI} !/$
RewriteRule ^(.*)$ $1\.php [L]
除此之外,在根目录中,我有几个文件(home.php
,about.php
,games.php
,email.php
和search-me.php
)应显示为mywebsite.com/home
或mywebsite.com/email
等... home.php
,about.php
和email.php
都可以正常工作,但由于某些奇怪的原因,games.php
并search-me.php
在网址末尾添加一个尾部斜杠并显示错误页面:
games.php
没有什么特别之处,除了它有几个<iframes>
和 LOTS 的javascript,这使得它有点慢。
search-me.php
同时使用$_GET
和$_POST
,具体取决于在上一页上按下了哪个提交按钮。对于此页面,它显示?
和变量之前的尾部斜杠,但显示相同的错误页面。
有谁知道这是为什么?如果您需要更多信息,请与我们联系。我试图考虑可能导致它的所有事情,但事实上它是games.php
,它与home.php
或about.php
没有任何不同之处因为全局变量输入($_GET
和$_POST
),它似乎不是。
编辑:我似乎有一个名为games/
和search-me/
的目录,这当然是为什么会产生错误。那么,我现在的问题是,是否有可能有一个目录和一个同名的文件,或者总是会导致错误?
答案 0 :(得分:0)
将此替换为此规则:
RewriteEngine on
RewriteCond %{DOCUMENT_ROOT}/$1\.php -f [NC]
RewriteRule ^(.+?)/?$ /$1.php [L]