2017-03-07 41 views
1

我不能建立一個301重定向重寫規則刪除域名WWW和從網址中刪除斜槓。.htaccess中去除WWW,溼地+ 301重定向

預先感謝您的協助。

例子:

www.domain.com/  to domain.com 
domain.com/   to domain.com 
domain.com/page/  to domain.com/page 
domain.com/page.php to domain.com/page 

我的代碼:

RewriteCond %{HTTP_HOST} ^(www.)?domain\.com$ [NC] 
RewriteRule ^(.*)/$ http://%{HTTP_HOST}/$1 [R=301,L] 

RewriteRule ^/(.*)/$ /$1 [NC,L] 

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^([^\.]+)$ $1.php [NC,L] 

回答

1

您可以使用此:

RewriteEngine on 

RewriteCond %{HTTP_HOST} ^www\. 
RewriteRule^http://example.com%{REQUEST_URI} [NE,L,R] 
#remove trailing slash 
RewriteRule ^(.+)/$ /$1 [L,R] 
#remove .php ext 
RewriteCond %{THE_REQUEST} /([^.]+)\.php [NC] 
RewriteRule^/%1 [L,R] 
RewriteCond %{REQUEST_FILENAME}.php -f 
RewriteRule ^(.*?)/?$ /$1.php [L] 

注意,這並不會刪除您現有的目錄斜線。當您請求現有的目錄時,Apache會添加一個尾部斜線。如果你想刪除這個斜槓,那麼你將需要使用下面的指令htaccess的

DirectorySlash off 

這告訴Apache忽略斜線,你可以帶或不帶尾隨斜線訪問您現有的迪爾斯。

+0

謝謝您的幫助。 www和斜槓很好地刪除,但是cons把我重定向到可見的.php頁面。有沒有辦法隱藏.php擴展名? – StackOverflowCom

+0

我爲您的.php文件添加了一條規則。請重新加載頁面以查看它。 – starkeen

+0

非常感謝你的幫助。 我將繼續查閱Apache文檔以更好地理解標誌的使用。 – StackOverflowCom