URL重写http> https AND domain.tld> www.domain.tld

时间:2018-11-07 22:39:58

标签: apache url https url-rewriting

我想将我的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]

什么是最好的?有什么问题吗?

谢谢

1 个答案:

答案 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的网址