我将任何非www和非SSL连接转发到https://www。*,并在我的.htaccess中使用此代码:
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\. [NC,OR]
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://www.lucakrebs.de/$1 [R=301,L]
但是当我尝试将这个确切的代码放在我的000-default.conf和000-default-le-ssl.conf中时,它会产生一个双斜杠(https://www.lucakrebs.de // )在URL后面。为什么呢?
答案 0 :(得分:0)
但是当我尝试将这个确切的代码放在我的000-default.conf和000-default-le-ssl.conf中时,它会在URL后面添加一个双斜杠(
https://www.lucakrebs.de//
)。为什么呢?
这是因为在http服务器配置中,前导斜杠也是RewriteRule
中与.htaccess文件不同的匹配。
您可以使用此规则使其在两种文件类型中的行为相同:
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\. [NC,OR]
RewriteCond %{HTTPS} off
RewriteRule ^/?(.*)$ https://www.lucakrebs.de/$1 [R=301,NE,L]
否则:
RewriteCond %{HTTP_HOST} !^www\. [NC,OR]
RewriteCond %{HTTPS} off
RewriteRule ^ https://www.lucakrebs.de%{REQUEST_URI} [R=301,NE,L]