htaccess为什么网站重定向到//

时间:2016-09-29 13:02:18

标签: html .htaccess

在我的htaccess中,我将所有非https重定向到https。 它有效,但它还增加了一个额外的'/',所以网址是 'https://www.[YY SITE网址] .co.uk //'

这是为什么?说实话,我真的不知道我的htaccess中的所有这些是什么,它从谷歌搜索的答案复制到'将所有请求重定向到https'

我的htaccess:

Options -MultiViews
RewriteEngine On    # Turn on the rewriting engine

RewriteBase /

#RewriteCond %{HTTP_HOST} ^(www\.)?jobooz\.com  [NC]
#RewriteRule ^(.*)$  https://www.jobooz.co.uk/$1     [R=301,L,NC]


RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ https://www.%{HTTP_HOST}%{REQUEST_URI}/$1 [R=301,L]
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI}/$1

RewriteRule    ^/?$    /php/index.php    [NC,L]    # Home page

我还注意到任何更深层次的网址,例如'/ search-jobs / jobs-near-me',我添加到网址然后也会重复,到'/ search-jobs / jobs-near-me / search-重定向到https时的工作/工作 - 靠近我。

如果我直接访问https版本,所有网址都可以正常工作。

感谢任何帮助,谢谢。

1 个答案:

答案 0 :(得分:1)

以下重写规则存在问题:

RewriteRule ^(.*)$ https://www.%{HTTP_HOST}%{REQUEST_URI}/$1 [R=301,L]

为什么您在重写的URL中看到重复片段的要点是(.*)匹配所有内容,并且已经包含主机和URI。相反,您可以尝试将端口80上的任何传入请求重定向到HTTPS。

RewriteCond     %{SERVER_PORT} ^80$
RewriteRule     ^ https://%{SERVER_NAME}%{REQUEST_URI} [L,R]