我在我正在处理的网站的子目录中有一个.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没有。我错过了什么?
答案 0 :(得分:1)
这与您的重写规则无关,这可能与您的DNS配置方式有关。
尝试对两个域进行ping操作:使用和不使用“www”。
这就是我的工作:我配置我的DNS,以便所有 有或没有www 被重定向到同一台PC:
然后我通过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]
试试