當用戶訪問www.domain.name
時,重定向到domain.name
。如何使用PHP/Apache實現301重定向?
1
A
回答
1
將這個在.htaccess
文件在您的網站的根目錄:
RewriteEngine On
RewriteCond %{HTTP_HOST} .
RewriteCond %{HTTP_HOST} !^domain\.name
RewriteRule (.*) http://domain.name/$1 [R=301,L,QSA]
這是他們做什麼,爲了:
- 打開重寫引擎上
- 確保
HTTP_HOST
提供 - 如果它不以的名稱開頭而沒有
www
或任何其他子域,然後允許重寫繼續。這可以防止無盡的重定向回到自己。 - 抓取URL
(.*)
後面的所有內容,包括查詢字符串QSA
,並將R=301
重定向到正確的域。L
只是說這是如果找到匹配文件中的最後一個命令。
2
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www\.domain\.name$ [NC]
RewriteRule (.*) http://domain.name/$1 [R=301,QSA,L]
+0
這需要mod_rewrite。只需使用更常用的mod_alias即可使用重定向(或RedirectMatch)。 –
+0
不,你不能使用重定向 – jspcal
0
在Apache中,您將Redirect行添加到配置文件中。在php中,您使用狀態碼301和位置:標題進行回覆。
但是,重定向需要額外的網絡往返。你確定你不想只使用一個ServerAlias產品線,以便無論他們是使用或不使用www來訪問相同的內容。
相關問題
- 1. 如何使用Django/Heroku實現301重定向
- 2. 使用JavaScript或jQuery可以實現301重定向嗎?
- 3. 使用鉤子實現301重定向BeforePageRedirect
- 4. 301重定向使用htaccess
- 5. 301使用htaccess重定向
- 6. 301使用RewriteRules重定向
- 7. 301使用.htaccess重定向
- 8. 301重定向使用IIS
- 9. 301使用htaccess重定向
- 10. 301使用Typepad重定向
- 11. 301不同瀏覽器實現301重定向?
- 12. 如何做301重定向?
- 13. 如何301重定向
- 14. 如何? (.htaccess重定向301)
- 15. 重定向301現代重寫問題
- 16. 301重定向
- 17. 重定向301
- 18. 301使用重寫的重定向
- 19. 301重定向,mod_rewrite禁用
- 20. htaccess的用301重定向
- 21. IIS 301重定向
- 22. 與重定向301
- 23. 301重定向seo
- 24. htacess重定向301
- 25. 重定向URL 301
- 26. Rails重定向301
- 27. nginx 301重定向
- 28. Rails 301重定向
- 29. OpenCMS - 301重定向
- 30. Sitewide 301重定向
是'%{HTTP_HOST}。 '沒用? – user198729
不,我相信它允許您通過IP地址訪問站點而不被重定向。 –
這是一個很好的描述! – jspcal