Apache-2.2
是否可以將一些查詢字元串重寫為 HTTPS 並將其他所有內容保留在 HTTP 上?
我正在將查詢字元串重寫為漂亮的 URI,例如:
index.php?q=/en/contact
成為/en/contact
並且一切都很好..# httpd.conf # HANDLE THE QUERY RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]
是否甚至可以重寫單個查詢以強制
https
和強制其他所有內容http
?我嘗試了許多不同的方法,這些方法通常以無限循環結束。我可以在 PHP 中編寫一個外掛來執行此操作,但我認為在伺服器 conf 中處理它會更有效。我會很感激任何建議。編輯: 為了澄清,我希望能夠將非 SSL 重寫為
http://example.com/index.php?q=/en/contact
啟用SSL,https://example.com/en/contact
並且每個未/en/contact
寫入的查詢http://example.com/...
htaccess 範例:
RewriteEngine On RewriteCond %{HTTPS} !=on RewriteRule ^en/contact$ https://%{SERVER_NAME}%{REQUEST_URI} [L,R] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{HTTPS} =on RewriteRule !^en/contact$ http://%{SERVER_NAME}%{REQUEST_URI} [L,R] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]
http://domain/en/contact
重定向到https://domain/en/contact
重寫到 index.php?q=en/contact
http://domain/en/fo
重寫為 index.php?q=en/fo
https://domain/en/fo
重定向到http://domain/en/fo
重寫到 index.php?q=en/fo
https://domain/en/contact
重寫為 index.php?q=en/contact