我已经在/home/USER/public_html/
上安装了Wordpress网站,文件夹中的.htaccess
如下所示:
# BEGIN Redirect Alias Site to Specific Folder
RewriteCond %{HTTP_HOST} customwebsite.com$ [NC]
RewriteRule ^(.*)$ /customwebsite/$1 [L]
# END Redirect Alias Site to Specific Folder
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
上述.htaccess
文件中的重定向别名规则允许我将别名域路由到使用不同的文件夹,从而允许从同一个cPanel帐户运行多个网站。
在/home/USER/public_html/customdomain/
文件夹中,我将.htaccess
规则设置为:
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /customdomain/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /customdomain/index.php [L]
</IfModule>
# END WordPress
它的工作非常好,但如果我试图强制HTTPS和非WWW使用每一套规则,我可以在互联网上找到.例如:
<IfModule mod_rewrite.c>
# Force HTTPS & NON-WWW
RewriteEngine On
RewriteCond %{HTTPS} !=on [OR]
RewriteCond %{HTTP_HOST} !^customdomain\.com$ [NC]
RewriteRule ^ https://customdomain.com%{REQUEST_URI} [R=301,L]
</IfModule>
以及我能做什么,然后尝试加载以下任何一个:
http://customdomain.com
https://www.customdomain.com
http://www.customdomain.com
它们都重定向到:
https://customdomain.com/customdomain/
这在一定程度上是正确的,但部分是错误的。它不应该在域的末尾有文件夹,这会导致问题,因为URL现在是不正确的。
当然,如果我删除%{REQUEST_URI}
,它就修复了重定向问题,但是如果我使用的是Wordpress,例如,每个URL都会出错,并会抛出一个404页,找不到。
我怎样才能修正力HTTPS &非WWW允许这种情况?
发布于 2017-11-21 10:06:29
您可以使用此规则()作为中的第一个规则。
RewriteEngine On
RewriteBase /customdomain/
# Force HTTPS & NON-WWW
RewriteCond %{HTTPS} !=on [OR]
RewriteCond %{HTTP_HOST} !^customdomain\.com$ [NC]
RewriteRule .* https://customdomain.com/$0 [R=301,L,NE]
RewriteRule ^index\.php$ - [L,NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php [L]
确保清除浏览器缓存或使用新浏览器进行测试。
https://stackoverflow.com/questions/47400022
复制相似问题