我想将我的http:\\www.domain.tld
重写并重定向到https:\\www.domain.tld
我想将domain.tld
重写并重定向到www.domain.tld
我想进行一些重定向,并且出于对seo的关注,表明这是一种重定向。
现在我有这样的东西:
1)
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [R=301]
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^ https://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L,NE,QSA]
或
2)
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule .* https://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L,NE,QSA]
什么是最好的?有什么问题吗?
谢谢
答案 0 :(得分:0)
Apache文档建议不要使用重写:redirect to https
要将HTTP URL重定向到https,您应该执行以下操作:
<VirtualHost *:80>
ServerName www.example.com
Redirect / https://www.example.com/
</VirtualHost>
<VirtualHost *:443>
ServerName www.example.com
# ... SSL configuration goes here
此代码段应进入主服务器配置文件,而不是按问题中的要求进入 。
但是,如果您无权访问主服务器配置文件,则可以使用以下命令:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^example.com$ [NC]
RewriteCond %{HTTPS} !on
RewriteRule (.*) https://www.example.com/$1 [R=301,L]
第1行:如果网址开头不含www
第2行:如果没有https
第3行:将该域中的所有网址重写为以https开头并具有www的网址