apache重定向(尾随斜杠问题)

时间:2014-03-12 23:18:37

标签: apache .htaccess mod-rewrite redirect

Amazon ELB(80-> 8080,443-> 8080) - > Apache服务器(端口8080)

我的apache服务器以/ var / www / html为根。 / var / www / html / customer是/ mnt / content / customer的符号链接。

http://company.com/customer redirects to http://company.com/customer/
https://company.com/customer redirects to http://company.com/customer/

我想:https://company.com/customer重定向到 https ://company.com/customer/

注意尾部斜杠和https到http。我想留在https。

我在/mnt/content/customer/.htaccess中尝试了以下内容:

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} -d
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*)$ https://company.com/$1/ [L]

我仍然会重定向到http。我的基本文件是index.html。我在网上尝试了不同的建议,但我遗漏了一些东西。

感谢任何帮助。

2 个答案:

答案 0 :(得分:1)

这很有用。

RewriteEngine On
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule ^/?(.*) https://%{SERVER_NAME}/customer/$1 [R,L]

我需要X-Forwarded-Proto,因为ssl在Amazon ELB上,而不是服务器上。

感谢您的帮助!

答案 1 :(得分:0)

您可以将此规则用作第一条规则:

RewriteEngine On

RewriteCond %{HTTPS} off [OR]
RewriteCond %{THE_REQUEST} \s/.*?[^/][\s?]
RewriteRule ^$ https://company.com/customer/ [R,L]