在我的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版本,所有网址都可以正常工作。
感谢任何帮助,谢谢。
答案 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]