2014-08-28 77 views
1

已使用htaccess刪除了我的網址擴展名(.php),甚至使URL擴展名.php重定向到404錯誤,就像如果我的網址是www.example.com/page/有些人在www.example.com/page.php這樣的末尾添加了.php擴展名,頁面重定向,因爲它應該是 ,但問題是當我打開url:「www.example.com/page.php/」時擴展名和斜槓打開。沒有重定向,沒有。我希望重定向到404.htaccess重寫規則擴展與斜槓錯誤

請仔細閱讀我的htaccess內容,並建議我進行改進,如果需要的話。任何幫助將不勝感激。

非www到www

RewriteEngine On 
RewriteCond %{HTTP_HOST} ^example.com [nocase] 
RewriteRule ^(.*)   http://www.example.com/$1 [last,redirect=301] 

索引頁只域

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index/ 
RewriteRule ^index/$ http://www.example.com/ [R=301,L] 

刪除擴展,並增加了削減

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^([^/]+)/$ $1.php 
RewriteRule ^([^/]+)/([^/]+)/$ /$1/$2.php 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_URI} !(\.[a-zA-Z0-9]{1,5}|/)$ 
RewriteRule (.*)$ /$1/ [R=301,L] 

刪除多個斜線

RewriteBase/
RewriteCond %{HTTP_HOST} !="" 
RewriteCond %{THE_REQUEST} ^[A-Z]+\s//+(.*)\sHTTP/[0-9.]+$ [OR] 
RewriteCond %{THE_REQUEST} ^[A-Z]+\s(.*/)/+\sHTTP/[0-9.]+$ 
RewriteRule .* http://%{HTTP_HOST}/%1 [R=404,L] 
+0

上面的代碼刪除擴展,並添加斜線已在加斜線部分的一些錯誤...代碼適用於2 - 中的文件3個子文件夾,然後它返回一個404錯誤..很好地更正了代碼... – Aryan 2014-10-26 12:39:10

回答

0

你只需要下面www規則新規則刪除.php擴展:

RewriteCond %{THE_REQUEST} \s/+(.*?/)?(?:index)?(.*?)\.php[\s?/] [NC] 
RewriteRule^/%1%2 [R=302,L,NE] 
+1

非常感謝你,我只是將R = 302更改爲404,並實現了我想要的。再次感謝您的幫助。繼續幫助他人。永遠愛你。還有一件事我想問你。我應該保留我的代碼以刪除多個斜槓。我的意思是我沒有看到它在使用很多。有沒有問題,或者沒問題? – Aryan 2014-08-30 03:08:41

+0

不客氣。您可以保留多個斜槓刪除代碼,但是這是很少使用的。 – anubhava 2014-08-30 04:33:17