2012-09-03 30 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