让人们访问我的网站,无论他们是否输入 www。在前面或不在哪里我应该将 .htaccess 文件放在哪里,因为我已经尝试过了,它不会工作。
我现在知道我需要将 .htaccess 放在非 www 上。服务器并且需要知道如何访问它以将其放在那里。
让人们访问我的网站,无论他们是否输入 www。在前面或不在哪里我应该将 .htaccess 文件放在哪里,因为我已经尝试过了,它不会工作。
我现在知道我需要将 .htaccess 放在非 www 上。服务器并且需要知道如何访问它以将其放在那里。
您需要将此文件放在文件夹的根目录中。确保文件名为 .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。
这与 htaccess 无关。您需要确保当有人键入时www.example.com
,它会转到与example.com
. 这是一个 DNS 问题。找到您的域名注册商并进行设置。
然后在您的服务器上,在您的虚拟主机配置中允许两者。您应该看到如下内容:
ServerName example.com
ServerAlias www.example.com