重定向非www。带www的URL的URL

时间:2013-09-27 15:45:03

标签: .htaccess

让人们访问我的网站是否输入www。在前面或者不在哪里放置.htaccess文件来执行此操作,因为我已经尝试过它并且不起作用。

我现在知道我需要将.htaccess放在非www上。服务器,需要知道如何访问它以将其放在那里。

2 个答案:

答案 0 :(得分:1)

您需要将此文件放在文件夹的根目录中。确保该文件名为.htaccess,并且最后没有扩展名,即.htaccess.txt。

如果您的网站所在的目录是

/var/www/mysite

然后这是需要放置文件的目录。根据您的Web服务器的设置方式,apache可能不允许使用htacess文件。要做到这一点,请执行以下操作。

cd /etc/apache2/sites-available

并在您的编辑或选择中打开“默认”,例如

sudo nano default

AllowOverride的默认值为none,它应为All,因此您的整体“默认”文件应如下所示:

NameVirtualHost *
ServerAdmin admin@site.com
DocumentRoot /var/www/
Options FollowSymLinks
AllowOverride None
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all

如果您没有ssh访问权限,则可能需要与您的虚拟主机对话。

其他评论 如果确认htaccess文件正常工作,则需要将以下代码添加到htaccess文件中:

RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]

这会将所有流量转发到http://site.com

或者反过来说

RewriteEngine On
RewriteCond %{HTTP_HOST} ^example.com
RewriteRule (.*) http://www.example.com/$1 [R=301,L]

这两个显然都需要您用您的站点地址替换example.com。这是执行此操作的一种方法,或者您可以在该特定站点的apache vhost文件中添加ServerAlias。

答案 1 :(得分:0)

这与htaccess无关。您需要确保当有人键入www.example.com时,它会转到与example.com完全相同的位置。这是一个DNS问题。找到您的域名注册商并进行设置。

然后在您的服务器上,在您的vhost配置中允许两者。你应该看到这样的东西:

ServerName example.com
ServerAlias www.example.com