配置HTAccess重写:非www域名301重定向至https://www遇路径问题
解决WordPress(Bitnami环境)301重定向路径异常问题
问题描述
正在优化网站SEO,多个工具提示需将https://example.co.uk通过301重定向至https://www.example.co.uk,否则会影响谷歌排名。添加重写规则后出现路径异常,当前wordpress-vhost-config配置如下:
RewriteEngine On RewriteRule ^bitnami/wordpress(/.*) $1 [L] # END WordPress fix for plugins and themes # BEGIN WordPress # https://wordpress.org/support/article/htaccess/#basic-wp RewriteEngine On RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d #this is the part that doesn't seem to work #RewriteCond %{HTTP_HOST} !^www\. #RewriteCond %{HTTPS}s on(s)|offs() #RewriteRule ^ http%1://www.%{HTTP_HOST}%{REQUEST_URI} [NE,L,R] RewriteRule . /index.php [L]
插入的重定向规则因路径异常已被注释,疑似规则冲突导致问题。
解决方案
重定向规则需要放在所有规则最顶部,且修正规则逻辑,避免路径丢失或异常。修改后的完整配置如下:
RewriteEngine On # 301永久重定向至www域名,同时保持HTTPS RewriteCond %{HTTP_HOST} !^www\. [NC] RewriteCond %{HTTPS} on RewriteRule ^(.*)$ https://www.%{HTTP_HOST}/$1 [L,R=301,NE] # Bitnami WordPress路径修正规则 RewriteRule ^bitnami/wordpress(/.*) $1 [L] # END WordPress fix for plugins and themes # BEGIN WordPress RewriteEngine On RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L]
关键调整说明
- 规则顺序:将重定向规则移到最开头,确保请求先被处理跳转,不会被后续的WordPress路由规则拦截,避免路径异常。
- 规则逻辑优化:
[NC]忽略域名大小写匹配,兼容可能的大小写输入- 直接判断
%{HTTPS} on,适配Bitnami环境的HTTPS配置,避免原规则中%{HTTPS}s写法的兼容性问题 - 用
$1捕获完整请求路径并拼接到新URL后,保证跳转后路径完全一致 [R=301]明确指定永久重定向,符合SEO要求;[NE]防止特殊字符被转义;[L]终止后续规则执行,避免冲突
- WordPress后台配置:务必在WordPress后台「设置-常规」中,将「WordPress地址(URL)」和「站点地址(URL)」都设置为
https://www.example.co.uk,避免内部链接跳转冲突。
生效步骤
修改配置后,重启Bitnami的Apache服务:
sudo /opt/bitnami/ctlscript.sh restart apache
内容的提问来源于stack exchange,提问作者J. Lay
相关产品推荐
相关产品推荐

