重定向与www不工作

时间:2013-11-19 14:10:41

标签: php apache .htaccess mod-rewrite redirect

我最近从共享主机切换到了VPS。 一切都很好,我可以访问我的域名。

但我似乎有一个问题: 在过去,所有非www网址都通过www。

重定向到网址

我使用以下htaccess.txt代码执行此操作:

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

但我当时正在使用新的htaccess,代码如下:

RewriteEngine on
RewriteCond %{HTTP_HOST} !^$
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteCond %{HTTPS}s ^off(s)|
RewriteRule ^ http%1://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

但两人都没有重定向我的非www域。

当我访问我的非www域名时,我会看到以下页面: “Apache正常运作”

我尝试使用DirectAdmin重定向将非www域重定向到带有www的域,但这也无效。

也许我已经把它弄错了,首先它不是一个htaccess问题。

我在服务器设置中忘记了什么吗? 我不知道,一切看起来都井然有序。 (我确实仔细检查了我的DNS设置,看起来很好)

有谁知道我接下来要做什么?

2 个答案:

答案 0 :(得分:0)

请尝试此

Rewriteengine on

RewriteCond %{HTTPS} on

RewriteCond %{HTTP_HOST} !^www\.(.*)$ [NC]

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

答案 1 :(得分:0)

如果使用windows download putty(ssh客户端)给它你的服务器ip地址选择type为ssh并点击open。

它会询问您的用户名和密码,并提供您的root用户名和密码(应由vps托管公司提供)

现在转到你的apache配置文件夹(我只熟悉基于debian的设置,如果你使用的是基于redhat的设置,你可能需要google正确的路径)/ etc / apache2 / sites-available

现在看看目录列表(ls),它会告诉你apache配置可用的机会你有像www.tx3.be那样的东西。编辑该文件我建议使用微微或纳米做pico

以下是我服务器的一个示例

root@hinch:/home/hinch# cd /etc/apache2/sites-available
root@hinch:/etc/apache2/sites-available# ls
default                   
default-ssl               
root@hinch:/etc/apache2/sites-available# pico default

现在你在apache配置文件中,你会看到类似这样的内容

NameVirtualHost *:80
<VirtualHost *:80>
        ServerAdmin root@yourdomain.com

        DocumentRoot /var/www/
        <Directory />
                Options FollowSymLinks
                AllowOverride None
        </Directory>
        <Directory /var/www/>
                DirectoryIndex index.html index.cgi index.pl index.php index.xhtml index.htm default.htm default.html default.php
                Options Indexes FollowSymLinks MultiViews
                AllowOverride None
                Order allow,deny
                allow from all
        </Directory>    
        ErrorLog /var/log/apache2/error.log
        # Possible values include: debug, info, notice, warn, error, crit,
        # alert, emerg.
        LogLevel warn
        CustomLog /var/log/apache2/access.log combined
</VirtualHost>

ServerAdmin后面加上以下

的行
ServerAlias tx3.be
ServerAlias www.tx3.be

保存文件并重启apache

service apache2 restartservice httpd restart

删除.htaccess中的所有重定向代码,并确保您同时拥有www。 dns记录和@。指向您的服务器IP地址的记录。现在,无论用户访问哪个版本的域,他们都会看到您的网站。