[英]Updating .htaccess to redirect to “www”
我有一個使用PHP框架(CodeIgniter)的網站,並且嘗試將發送到“ mydomain.com”的所有查詢重定向到www.mydomain.com“ 。我對.htaccess進行了更改,現在看起來如下:
<IfModule mod_rewrite.c>
RewriteEngine On
# I just added this part
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
# The default rule of the framework
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [QSA,L]
</IfModule>
現在的問題是,當我輸入“ mydomain.com”時,它可以正常工作,用戶已正確重定向,但是當他們輸入更復雜的地址(例如“ mydomain.com/Settings”)時,他們也被重定向到此主頁。
我該如何解決?
謝謝
這對我有用(example.com)
<IfModule mod_rewrite.c>
RewriteEngine On
# I just added this part
RewriteCond %{HTTP_HOST} !^www\.example\.com$ [NC]
RewriteRule ^(.*)$ http://www.example.com/$1 [L,R=301]
# The default rule of the framework
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [QSA,L]
</IfModule>
對於我來說,其中的“框架”部分可能因服務器而異,以我自己的經驗,我有以下選擇:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# NORMAL SERVER ( COMMENT OUT IF GODADDY OR OPTION #3 )
RewriteRule .* index.php/$0 [PT,L]
# SPECIAL GODADDY LINE ( UNCOMMENT IF GODADDY )
#RewriteRule ^(.*)$ /index.php?/$1 [L]
# IF NOTHING ELSE WORKS UNCOMMENT THIS ONE
#RewriteRule ^ index.php [QSA,L]
我知道您不是在詢問“框架”部分,但我想還是要提一下。
試一下。
RewriteEngine On
RewriteCond %{HTTP_HOST} ^[^.]+\.[^.]+$
RewriteRule ^ http://www.%{HTTP_HOST}%{REQUEST_URI} [NE,L,R=301]
在RewriteEngine On之后添加它
RewriteCond %{HTTPS} on
RewriteCond %{HTTP_HOST} !^www\.(.*)$ [NC]
RewriteRule ^(.*)$ https://www.%{HTTP_HOST}/$1 [R=301,L]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.