我在Heroku上运行并添加了重写规则来清理URL并强制使用https。当网址从http重写为https时,我遇到了一个小问题,并且不了解重写规则,但还没弄清楚我做错了什么。
Heroku上的当前.htaccess
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ ?id=$1 [QSA]
##Force SSL
RewriteCond %{HTTP:X-Forwarded-Proto} !https
当我访问https://example.com/12345时,一切都很有效。 当我访问http://example.com/12345时,网址会被重写为https://example.com/12345?id=12345
我希望http重写为https://example.com/12345
我错过了什么?提前谢谢!
答案 0 :(得分:0)
看起来你不需要第2行和第3行。所以你的conf将是:
RewriteEngine On
##Force SSL
RewriteCond %{HTTP:X-Forwarded-Proto} !https
我在最后RewriteRule
之后看不到任何RewriteCond
。
您是否忘记在问题或conf中添加以下内容?
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,QSA,R=301]