2011-01-26 41 views
0

好吧,我有我的.htaccess這個重寫規則:的.htaccess HTTPS重定向,同時保持網址簡短

RewriteRule ^settings https://%{HTTP_HOST}/user_settings.php 

這種重定向「http://domain.com/settings」爲「https://域名.COM/user_settings.php」。

我該如何使它重定向「https://domain.com/settings」到「https://domain.com/settings」?這意味着,我怎麼能重定向從HTTP HTTP到HTTPS的網址,同時仍然保持重定向短網址在.htcaccess?

謝謝!

回答

1

編輯:問題澄清後更新答案。

你可以做這樣的事情:

RewriteCond %{HTTPS} !=on 
RewriteRule ^settings(/?)$ https://%{SERVER_NAME}%{REQUEST_URI} [R,NC] 
RewriteCond %{HTTPS} =on 
RewriteRule ^settings(/?)$ /user_settings.php [L,NC] 

第一RewriteCond將檢查HTTPS是關閉的,如果是以下RewriteRule纔會發生。

第一RewriteRule將匹配下列之一:

  • http://domain.com/settings
  • http://domain.com/settings/

(/?)允許尾隨正斜槓是可選的。在[R,NC]中的R強制這是重定向,NC意味着它不區分大小寫。

第二個RewriteCond將再次檢查HTTPS,但這次確保它已打開。

如果HTTPS已打開,並且您位於您的目錄(即第一次重寫成功),它將重寫爲user_settings.php[L,NC]中的L表示如果該規則匹配,則應該遵循最後的RewriteRule

+0

但是它如何知道使用user_settings.php作爲重定向?這隻會給404錯誤。 – user591225 2011-01-26 21:40:56