Lightsail/Bitnami:将www流量重定向至非www失败求正确方法
解决Bitnami Apache www转非www重写规则不生效的问题
1. 确认mod_rewrite模块已启用
先检查Apache的核心配置文件/opt/bitnami/apache/conf/httpd.conf,确保存在未被注释的LoadModule rewrite_module modules/mod_rewrite.so行。如果该行前面有#,去掉注释后再重启Apache。
2. 放置规则到正确的配置文件
Bitnami环境中,全局的bitnami.conf并非站点专属配置文件,建议将重写规则放到对应站点的虚拟主机配置里,通常位于/opt/bitnami/apache/conf/vhosts/目录下的[你的域名].conf文件中。
3. 修正规则配置(需包含重写引擎开启)
将规则放在对应站点的VirtualHost块内,同时确保开启重写引擎,示例配置如下:
# HTTP 80端口配置 <VirtualHost *:80> ServerName domain.com ServerAlias www.domain.com # 必须开启重写引擎 RewriteEngine On # www转非www的302跳转规则 RewriteCond %{HTTP_HOST} ^www\.domain\.com$ RewriteRule ^/?(.*)$ %{REQUEST_SCHEME}://domain.com/$1 [L,R=302,NE] # 保留原有站点配置(如DocumentRoot等) DocumentRoot "/opt/bitnami/apache/htdocs" # ... 其他原有配置内容 </VirtualHost> # HTTPS 443端口配置(如果启用了SSL) <VirtualHost *:443> ServerName domain.com ServerAlias www.domain.com RewriteEngine On RewriteCond %{HTTP_HOST} ^www\.domain\.com$ RewriteRule ^/?(.*)$ %{REQUEST_SCHEME}://domain.com/$1 [L,R=302,NE] # SSL相关配置 SSLEngine on SSLCertificateFile "/path/to/your/certificate.crt" SSLCertificateKeyFile "/path/to/your/private.key" # ... 其他原有SSL配置内容 </VirtualHost>
4. 验证配置语法并重启Apache
修改配置后先检查语法是否正确:
/opt/bitnami/apache/bin/httpd -t
输出Syntax OK后再重启服务:
sudo /opt/bitnami/ctlscript.sh restart apache
5. 清除浏览器缓存测试
浏览器可能缓存旧的跳转规则,建议使用隐私模式或清除缓存后再访问测试。
内容的提问来源于stack exchange,提问作者Paul VI
相关产品推荐
相关产品推荐

