2016-05-13 63 views
0

好了,我想重定向所有WWW非WWW鏈接,WWW重定向到非WWW與子文件夾和鏈接

我想www.example.com重定向到example.com,而我也可以這樣做使用此代碼。

RewriteEngine On 
RewriteBase/
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC] 
RewriteRule ^(.*)$ https://%1/$1 [R=301,L] 

但當有人試圖訪問www.example.com/example,重定向的站點example.com,

我希望有一個代碼,可以重定向www.example.com/example或任何子文件夾複製到example.com/example或任何子文件夾。

有點像通配符條目,該怎麼做?

如果可能的話,也可以強制ssl。

謝謝。

+1

您的代碼對我來說看起來沒問題。嘗試清除您的瀏覽器緩存 – starkeen

+0

也嘗試了隱身,努力工作。 – Harsh

回答

1

如果我理解正確你的問題:

www.example.com/dir/anypage.html到example.com/dir/anypage.html(同一頁)

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

OR用途:

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

-------- ---------替代

RewriteEngine on 

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

RewriteCond %{HTTP_HOST} ^example\.com$ 
RewriteCond %{REQUEST_URI} !^/subfolder/ 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ /subfolder/$1 [L] 

RewriteCond %{HTTP_HOST} ^example\.com$ 
RewriteRule ^(/)?$ /subfolder/index.php [L] 

要強制SSL:

RewriteEngine On 
RewriteCond %{SERVER_PORT} 80 
RewriteRule ^(.*)$ https://example.com/$1 [R=301,L] 
+0

與之前不一樣,/子文件夾不能重定向。它只會重定向到主頁面。 – Harsh

+0

嘿@Harsh,試試這個:RewriteCond%{HTTP_HOST} ^(www \ .example \ .com)?$ RewriteRule ^(。*)$ http://example.com/subfoldername/$1 [R = 301,L ] – Lag

+0

我想要的是動態的,不僅對於單個子文件夾,而且對於所有人。 – Harsh