让人们访问我的网站是否输入www。在前面或者不在哪里放置.htaccess文件来执行此操作,因为我已经尝试过它并且不起作用。
我现在知道我需要将.htaccess放在非www上。服务器,需要知道如何访问它以将其放在那里。
答案 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