2015-01-05 26 views
0

我有以下規則迄今已取得,但它不工作,我希望。htaccess的重寫規則訪問網站不處理規則中的非WWW到www等

Options +FollowSymLinks 
RewriteEngine On 
# (1) Redirect http to https 
RewriteCond %{HTTPS} off 
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] 
# (2) Redirect non-www to www 
RewriteCond %{HTTP_HOST} !^www\. 
RewriteRule ^(.*)$ https://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301] 
# (3) Direct access through IP 
# CHANGE 11.11.11.11 TO YOUR ACTUAL IP 
RewriteCond %{HTTP_HOST} ^11\.11\.11\.11$ 
RewriteRule ^(.*)$ http://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] 

我想實現的,如果我通過其IP地址來訪問我的網站(如:11.11.11.11),則沒有以下規則進行:

如果我訪問它:

http://example.com.au/(subfolders/etc)

其301重定向到:

https://www.example.com.au/(subfolders/etc)

如果我訪問它:

http://www.example.com.au/(subfolders/etc)

其301重定向到:

https://www.example.com.au/(subfolders/etc)

如果我訪問它:

https://example.com.au/(subfolders/etc)

其301重定向到:

https://www.example.com.au/(subfolders/etc)

+0

那麼,什麼是不工作?除了導致重定向循環的最後一條規則? –

+0

重定向循環部分。 – Martin

+0

目前還不清楚你想用最後一條規則(IP)做什麼 –

回答

0

刪除導致重定向循環的最後一條規則。相反,無論這個規則添加到頂部:

RewriteCond %{HTTP_HOST} ^11\.11\.11\.11$ 
RewriteRule^- [L] 

或者添加此條件到其他兩個規則:

Options +FollowSymLinks 
RewriteEngine On 
# (1) Redirect http to https 
RewriteCond %{HTTP_HOST} !^11\.11\.11\.11$ 
RewriteCond %{HTTPS} off 
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] 
# (2) Redirect non-www to www 
RewriteCond %{HTTP_HOST} !^11\.11\.11\.11$ 
RewriteCond %{HTTP_HOST} !^www\. 
RewriteRule ^(.*)$ https://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301] 
+0

正是我正在用http://htaccess.madewithlove.be/進行試用 - 非常感謝,完美地工作。 – Martin