📜  apache 将 www 重定向到非 www (1)

📅  最后修改于: 2023-12-03 14:39:17.637000             🧑  作者: Mango

Apache将www重定向到非www

在访问网站时,有些人会在URL中输入www,而有些人则不会。这是一个常见的问题,因为搜索引擎和浏览器都认为这些是两个不同的网站,这将影响网站的SEO和流量。因此,为了避免这种情况,我们可以使用Apache服务器来将www重定向到非www。

步骤
  1. 打开终端或命令提示符,登录到服务器或主机,并进入Apache配置文件夹。

  2. 打开 Apache 配置文件,文件路径为 /etc/httpd/conf/httpd.conf,也可以通过其他方式进入该文件编辑器例如nano或vi。

  3. 查找以下行:

#LoadModule rewrite_module modules/mod_rewrite.so

上述命令有些系统中默认解析,有些则是需要手工解析,如果返回了本行错误,则是需要执行该命令的操作。

  1. 将该行 # 号删除,启动Apache的“重写”模块。保存文件并关闭。

  2. 找到以下代码块:

<VirtualHost *:80>
    ServerAdmin webmaster@dummy-host.example.com
    DocumentRoot "/usr/docs/dummy-host.example.com"
    ServerName dummy-host.example.com
    ServerAlias www.dummy-host.example.com
    ErrorLog "/private/var/log/apache2/dummy-host.example.com-error_log"
    CustomLog "/private/var/log/apache2/dummy-host.example.com-access_log" common
</VirtualHost>
  1. 在这个代码块的最后,添加以下行:
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www\.example\.com$ [NC]
RewriteRule ^(.*)$ http://example.com$1 [L,R=301]

其中,example.com是你的域名。此代码段的作用是将所有的www.example.com网址重定向到example.com。

  1. 保存文件并重新启动Apache服务器。您可以使用以下命令:

在Ubuntu中使用以下命令重新启动Apache服务器:

sudo service apache2 restart

在Red Hat / CentOS中使用以下命令重新启动Apache服务器:

sudo service httpd restart
结论

现在,您已经成功地将www.example.com网址重定向到example.com。您的网站是否在URL中有www,都可以访问。这将确保您的网站流量和SEO不受影响。