如何強制www,刪除尾部斜線,強制非ssl並使用.htaccess刪除.php擴展名?如何強制www,刪除尾部斜線,強制非ssl並使用.htaccess刪除.php擴展名?
我已經嘗試了很多東西,但我得到了500多個內部服務器錯誤。
謝謝。
如何強制www,刪除尾部斜線,強制非ssl並使用.htaccess刪除.php擴展名?如何強制www,刪除尾部斜線,強制非ssl並使用.htaccess刪除.php擴展名?
我已經嘗試了很多東西,但我得到了500多個內部服務器錯誤。
謝謝。
力WWW:
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
刪除斜線:
RewriteRule ^(.*)/$ $1 [R=301,L]
力HTTP:
RewriteCond %{HTTPS} on
RewriteRule ^(.*)$ %{HTTP_HOST}/$1 [R=301,L]
關於去除PHP擴展,我不能完全肯定,但你可以試試這個:
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)/$ %{HTTP_HOST}/$1 [R=301,L]
RewriteCond %{THE_REQUEST} ^(.+)\.php([#?][^\ ]*)?\ HTTP/
RewriteRule ^(.+)\.php$ %{HTTP_HOST}/$1 [R=301,L]
RewriteRule ^([^/.]+)$ $1.php [L]
但是,這可能會失敗的目錄。但是因爲我不再使用apache,我只能猜測而不是測試它。
因此,一個組合的解決方案看起來是這樣的:
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\. [NC,OR]
RewriteCond %{HTTPS} on
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)/$ %{HTTP_HOST}/$1 [R=301,L]
RewriteCond %{THE_REQUEST} ^(.+)\.php([#?][^\ ]*)?\ HTTP/
RewriteRule ^(.+)\.php$ %{HTTP_HOST}/$1 [R=301,L]
RewriteRule ^([^/.]+)$ $1.php [L]
RewriteRule ^(.*)/$ $1 [R=301,L]
這不起作用。如果我轉到example.dev/about,它會將我重定向到www.example.dev/Users/James/Sites/example/about,這根本就不對。 – Jamesking56
這就是我的意思。我會盡力檢查並解決這個問題。 – user2748261
你能告訴你的代碼,你試過嗎? – anubhava
有十億個類似的問題。先做一個搜索。 –
沒有別的我曾嘗試從以前的問題工作。這就是爲什麼我再次提高它。 – Jamesking56