Bitnami Apache Rewrite规则配置求助:站点迁子域名后链接失效
Apache重定向配置修正方案
原配置存在的问题
- 域名拼写错误:
RewriteCond %{HTTP_HOST} ^(?:www\.)?domainnmae\.com$ [NC]中的domainnmae应为domainname,这是导致规则无法匹配的核心原因 - 规则匹配逻辑可优化:原规则的查询字符串条件限制过严,若URL附带其他参数则无法触发重定向;重复的
RewriteEngine On声明属于冗余配置
修正后的完整重定向规则段
将虚拟主机配置中# BEGIN: Enable non-www to www redirection到# END: Enable non-www to www redirection之间的内容替换为以下代码:
RewriteEngine On # 匹配4层动态文件夹+show路径,重定向到子域名 RewriteCond %{HTTP_HOST} ^(www\.)?domainname\.com$ [NC] # 若需仅匹配带elem参数的URL,可添加下方注释的查询字符串条件 # RewriteCond %{QUERY_STRING} (^|&)elem=[^&]+(&|$) [NC] RewriteRule ^([^/]+/){4}show/?$ https://www.subdomain.domainname.com%{REQUEST_URI} [R=301,L,NC,NE] # 非www转www重定向 RewriteCond %{HTTP_HOST} !^www\. [NC] RewriteCond %{HTTP_HOST} !^localhost RewriteCond %{HTTP_HOST} !^[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+(:[0-9]+)?$ RewriteCond %{REQUEST_URI} !^/\.well-known RewriteRule ^(.*)$ https://www.%{HTTP_HOST}%{REQUEST_URI} [R=permanent,L]
修改说明
- 修正域名拼写:修复
domainnmae的拼写错误,确保主机名匹配正常 - 简化路径匹配:用
([^/]+/){4}替代重复的[^/]+/,更简洁地匹配4个动态文件夹的路径结构 - 可选的参数限制:若仅需对带
elem参数的URL重定向,取消注释对应的查询字符串条件即可;若所有符合路径格式的URL都需重定向,则保留现有配置 - 规则优先级:将子域名重定向规则放在非www转www规则之前,确保目标路径先被处理,避免被后续规则拦截
验证步骤
- 保存修改后的
wordpress-https-vhost.conf文件 - 重启Apache服务:
sudo /opt/bitnami/ctlscript.sh restart apache - 用浏览器或curl工具测试原有链接,确认是否正确跳转到子域名地址
内容的提问来源于stack exchange,提问作者Josh Hawkes
相关产品推荐
相关产品推荐

