.htaccess mod_rewrite仅适用于www

时间:2011-12-15 16:36:35

标签: .htaccess mod-rewrite

我在我正在处理的网站的子目录中有一个.htaccess文件。当URL以www开头时,它可以正常工作,但如果缺少www,则无效。

RewriteEngine On
RewriteBase /media
RewriteRule ^([a-zA-Z0-9_\s\-]+)/?$ index.php?a=$1 [L]
RewriteRule ^([a-zA-Z0-9_\s\-]+)/([a-zA-Z0-9_\s\-]+)$ index.php?a=$1&b=$2 [L]

如果我请求http://www.mysite.com/media/test,则可以,但http://mysite.com/media/test没有。我错过了什么?

2 个答案:

答案 0 :(得分:1)

这与您的重写规则无关,这可能与您的DNS配置方式有关。

尝试对两个域进行ping操作:使用和不使用“www”。

这就是我的工作:我配置我的DNS,以便所有 有或没有www 被重定向到同一台PC:

DNS configuration

然后我通过vhost配置处理所有内容:

<VirtualHost *>

    ServerAdmin webmaster@livrepizzas.fr
    DocumentRoot "/web/htdocs/olivier/livrepizzas/dev/website"

    ServerName livrepizzas.fr
    ServerAlias *.livrepizzas.fr
    ...
    ...
    ...
</VirtualHost>

答案 1 :(得分:0)

Options +FollowSymLinks
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www.website.com [NC]
RewriteRule ^(.*) http://website.com%{REQUEST_URI} [R=permanent,QSA,L]

试试