大家好~
如題,想請教有可能在強制https瀏覽的同時簡化網址嗎?
RewriteCond %{SERVER_PORT} !^443$
RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [L,R]
RewriteRule ^([^?]*) product.php?_route_=$1 [L,QSA]
目前上述的測試結果
會從http轉到https但chrome會顯示ERR_TOO_MANY_REDIRECTS...
第二個RewriteRule要加上RewriteCond,排除網址有product.php的狀況。
請參考:http://httpd.apache.org/docs/current/rewrite/flags.html#flag_l 的說明。
謝謝您的回答^^
看起來是這個問題了~
加入
RewriteCond %{SERVER_PORT} !^443$
RewriteCond %{REQUEST_URI} !^/?(product.php)
RewriteCond %{REQUEST_URI} !^/?(product\.php)
RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [L,R]
RewriteRule ^([^?]*) product.php?_route_=$1 [L,QSA]
一樣出錯....
我沒測試過,不過你的規則有點怪。先把
RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [L,R]
移到這個RewriteCond後面:
RewriteCond %{SERVER_PORT} !^443$
看看。另外,要測試是否是透過http進來的request,可以測試這樣的RewriteCond,比較明確一點。
RewriteCond %{HTTPS} ^off$
然後再把它轉到https。