更正.htaccess将所有https://页面重定向到https:// www

问题描述 投票:0回答:1

我想将所有非www页面重定向到https://,但只有主页按预期方式执行。也就是说,http://kraftgiftbox.com将按照我的预期重定向到https://www.kraftgiftbox.com/,这没关系!但是,与https://kraftgiftbox.com/odd-shaped-boxes.html一样,子级别页面都不会重定向到www版本。我有一个.htaccess文件如下:

RewriteOptions inherit
RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteCond %{REQUEST_URI} !^/\.well-known/acme-challenge/[0-9a-zA-Z_-]+$
RewriteCond %{REQUEST_URI} !^/\.well-known/cpanel-dcv/[0-9a-zA-Z_-]+$
RewriteCond %{REQUEST_URI} !^/\.well-known/pki-validation/[A-F0-9]{32}\.txt(?:\ Comodo\ DCV)?$
RewriteRule ^(.*)$ https://kraftgiftbox.com/$1 [R,L]
ErrorDocument 404 /404.shtml 
RewriteCond %{HTTP_HOST} ^kraftgiftbox\.com$
RewriteCond %{REQUEST_URI} !^/\.well-known/acme-challenge/[0-9a-zA-Z_-]+$
RewriteCond %{REQUEST_URI} !^/\.well-known/cpanel-dcv/[0-9a-zA-Z_-]+$
RewriteCond %{REQUEST_URI} !^/\.well-known/pki-validation/[A-F0-9]{32}\.txt(?:\ Comodo\ DCV)?$
RewriteRule ^/?$ "https\:\/\/www\.kraftgiftbox\.com\/" [R=301,L]

有人可以帮我纠正代码吗?谢谢!

.htaccess url-redirection
1个回答
0
投票

最后一行规则导致了这一点,因为您只通过此RewriteRule ^/?$捕获根请求,以实现您想要的尝试:

ErrorDocument 404 /404.shtml 
RewriteOptions inherit
RewriteEngine On
RewriteCond %{HTTP_HOST} ^(www\.)?kraftgiftbox\.com$ [NC,OR]
RewriteCond %{SERVER_PORT} 80
RewriteCond %{REQUEST_URI} !^/\.well-known/acme-challenge/[0-9a-zA-Z_-]+$
RewriteCond %{REQUEST_URI} !^/\.well-known/cpanel-dcv/[0-9a-zA-Z_-]+$
RewriteCond %{REQUEST_URI} !^/\.well-known/pki-validation/[A-F0-9]{32}\.txt(?:\ Comodo\ DCV)?$
RewriteRule ^(.*)$ https://www.kraftgiftbox.com/$1 [R=301,L]

上面的规则同时做了两个,强迫httpswww

注意清除浏览器缓存然后测试。

© www.soinside.com 2019 - 2024. All rights reserved.