2012-10-31 83 views
1

我正在編寫一個簡單的.htaccess重寫來強制單個頁面使用https(受到this question的答案的啓發)。RewriteCond或只是RewriteRule的一個簡單的.htaccess重寫?

是它更好地使用的RewriteCond,如下:

RewriteCond %{HTTPS} off 
RewriteCond %{REQUEST_URI} ^/page\.php$ 
RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L] 

或在重寫規則的條件越短替代:

RewriteCond %{HTTPS} off 
RewriteRule ^page\.php$ https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L] 
+0

我認爲兩者都應該適用於您的情況,兩者沒有太大區別。 – Humayun

+0

@humayun我可以證實這兩個_do_工作。我想知道是否有任何理由使用前者,更長的版本。 另外,如果有人可以做任何改進,那麼請做 – jofitz

回答

3

好吧,如果你正在使用Apache作爲你的httpd服務器那麼你是絕對好的和安全的單一條件和單一的規則,這足以實現你給定的任務。使用前者的優點在短期內沒有優勢。 我說如果您不必制定/應用更多的規則或檢查,那麼使用較短的一個,而不是再應用一個額外的條件。我這樣說是因爲你的情況很簡單,你只需要重定向到https只有一個給定的頁面。

即使你看AskApache site here他們也建議最好的方法是隻使用%{HTTPS}變量和一個單一的RewriteRule,這是最好和有效的方法。

讓我知道你的擔心是否與上面提到的不同。