2012-09-03 31 views
0

我目前遇到了与我的网站有关的问题。如果有人输入http://mysite.com/index.php,它会正常工作,并显示index.php,因为它应该。但是,如果有人输入http://mysite.com/index.php/,index.php会丢失大部分图像,并且现在充当一个文件夹,即使它不是。这发生在我所有的.php文件上。PHP - 添加尾部斜线(.php /)导致页面显示出现错误

但是,在其他网站上,这个问题不会发生。我一直在想使用这个htaccess的代码:

# Remove garbage info after .php 
RewriteRule ^([^.]+\.php)[/.] http://www.example.com/$1 [R=301,L] 

我的问题基本上是...是什么这个问题的最佳解决方案? 另外,如果我使用上面提到的htaccess RewriteRule,会将/test.php?id=5这样的页面拆分为/test.php(基本上删除.php后面的所有内容)?

谢谢,
马克

回答

0

处理这个创造为您的网站的单一入口点的最好办法。

所以,在你的.htaccess你可以写:

RewriteEngine On 

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-l 

RewriteRule ^(.+)$ index.php?url=$1 [QSA,L] 

现在,您将在index.php中随时进入并从那里你可以,你喜欢什么的URL做:

$url = rtrim($url, '/'); 
$request = explode('/', $url); 

看看我的tutorial/blog

+0

那么,我遇到的这个问题并不仅限于index.php ...它存在于我所有的.php文件中:s – Mko

+0

JvdBerg的解决方案将捕获所有的页面/ php文件,然后通过index.php传递它们(这将是一个新的文件,而不是你现有的index.php)。 – Springie