在我的服务器上,当我访问不带 www 的页面时,它会正确加载。但如果我尝试使用 www,则会收到 cgi-sys 错误。
我正在使用 CentOS 版本 6.8 Apache/2.2.31
我相信 apache 中已启用“rewrite_module”。
# httpd -M | grep rew
Syntax OK
rewrite_module (static)
它没有显示在 phpinfo() 中。这有关系吗?
我的httpd.conf:
<VirtualHost IP:80>
ServerName example.com
ServerAlias example.com
DocumentRoot /path/to/folder
<Directory "/path/to/folder">
Options FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
</Directory>
我在 htaccess 中设置了此项:
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^www\.domain\.com [NC]
RewriteRule ^(.*)$ http://domain.com/$1 [L,R=301]
我已经检查过 htaccess 是否被读取:我添加了一个错误的行,然后发现出现了错误 500。
www 仍然不起作用。有什么想法吗?
解决
这是浏览器缓存问题。清除缓存和 cookies 即可解决
答案1
您应该更新 ServerAlias 值以包含要使用的每个别名。只需用空格分隔每个值即可:
ServerAlias www.example.com example.com