0

让人们访问我的网站,无论他们是否输入 www。在前面或不在哪里我应该将 .htaccess 文件放在哪里,因为我已经尝试过了,它不会工作。

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

4

2 回答 2

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。

于 2013-09-27T15:51:13.423 回答
0

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

然后在您的服务器上,在您的虚拟主机配置中允许两者。您应该看到如下内容:

ServerName example.com
ServerAlias www.example.com
于 2013-09-27T15:52:31.443 回答