我正在尝试在.htaccess
中设置一些规则以特定方式工作:
特定页面重定向:
RewriteRule "^web/site/mais$" https://www.main.com/front/for-you/insurance/ [R=301,L]
主页重定向
RewriteRule ^$ https://www.forexample.com.br/for-you/ [R=301,L]
RewriteRule ^/$ https://www.forexample.com.br/for-you/ [R=301,L]
HTTP到HTTPS并将www添加到其余部分(这是不起作用的),我尝试了很多东西:
RewriteCond %{HTTP_HOST} !^www\.
RewriteCond %{HTTPS} !^on$ [OR]
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule (.*) https://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
RewriteCond %{HTTP_HOST} ^www\.
RewriteCond %{HTTPS} !^on$ [OR]
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
其他方式我试图忘记www规则(但也不起作用):
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
我发现结合的唯一方法是将https
中的常规www
和httpd.conf
规则以及其他规则写入.htaccess
,但这样我得到两个或多个301重定向,SEO的业务不好。
答案 0 :(得分:2)
您对所有目录是否存在相同的问题,或者只对某些目录有问题?
因为如果你有ProxyPass(如你所说),也许它会直接向你发送重定向到Tomcat,所以在离开ssl.conf之前,你可能需要在ssl.conf中指定规则来读取规则。尝试在ProxyPass
之后写下您写入ssl.conf的最后一个答案 1 :(得分:1)
如果您想将某些空间页面重定向到https,例如,要重定向:
到
和
要 - https://www.example.com/page2.html
您可以尝试以下方法:
RewriteEngine on
RewriteCond %{HTTP_HOST} !^www\. [OR]
RewriteCond %{HTTPS} off
RewriteRule ^(page|page2)\.html$ https://www.example.com/$1.html [L,R]
如果要将整个站点从http重定向到https,可以使用以下命令:
RewriteEngine on
RewriteCond %{HTTP_HOST} !^www\. [OR]
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://www.example.com/$1 [NC,L,R]