我的客户希望使用301重定向强制在其网站上的“www”子域名。所以“example.com/something”解析为“www.example.com/somthing”等

我想要做的就是简单地将它添加到我的虚拟主机文件:

<VirtualHost *:80>
  ServerAdmin webmaster@localhost     
  ServerName  example.com
  ServerAlias www.*
  DocumentRoot /data/apps/example.com/current/public
  RailsBaseURI / 

  RewriteEngine On
  RewriteCond %{HTTP_HOST} ^example\.com
  RewriteRule ^ http://www.example.com%{REQUEST_URI} [L,R=301]
</VirtualHost>

我还确保国防部重写经启用:

sudo a2enmod rewrite
sudo /etc/init.d/apache2 force-reload

我目前努力的结果基本上似乎是成功的。 Apache的重新启动,一切正常,除了重写没有发生。因此,无论“www.example.com”和“example.com的决心。浏览器没有得到当它应该重定向到“www.example.com”。有任何想法吗?我试着重装配置和重启动Apache几次,但我似乎无法得到工作的重写规则。我在这里通过将其放置在虚拟主机而不是.htaccess文件将它们设置错了地方?

这里任何意见将是有用的。我完全挡板。

有帮助吗?

解决方案

将这个您的主虚拟主机条目下:

<VirtualHost *:80>
    ServerName example.com
    RedirectMatch permanent ^/(.*) http://www.example.com/$1
</VirtualHost>

您主要的虚拟主机应该有一个服务器名称www.example.com进入和无别名或重定向。此外,不需要用于此重定向的mod_rewrite。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top