Redirect virtualhost赢得';t重定向

Redirect virtualhost赢得';t重定向,redirect,apache2,virtualhost,Redirect,Apache2,Virtualhost,以下是我的virtualhost文件的剪辑: SeverName domain.com ServerAlias www.domain.com <Directory /> Options -Indexes +FollowSymlinks RewriteEngine On RewriteCond %{HTTP_HOST} ^[^\./]+\.[^\./]+$ [NC] RewriteRule ^/(.*)$ http://www.do

以下是我的virtualhost文件的剪辑:

  SeverName domain.com
  ServerAlias www.domain.com

  <Directory />
     Options -Indexes +FollowSymlinks
     RewriteEngine On
     RewriteCond %{HTTP_HOST} ^[^\./]+\.[^\./]+$ [NC]
     RewriteRule ^/(.*)$ http://www.domain.com/$1 [R=301,L]
     RewriteBase /
     RewriteRule ^index\.php$ - [L]
     RewriteCond %{REQUEST_FILENAME} !-f
     RewriteCond %{REQUEST_FILENAME} !-d
     RewriteRule . archive.php [L]
  </Directory>
SeverName domain.com
ServerAlias www.domain.com
选项-索引+FollowSymlinks
重新启动发动机
重写条件%{HTTP\u HOST}^[^\./]+\.[^\./]+$[NC]
重写规则^/(.*)$http://www.domain.com/$1[R=301,L]
重写基/
重写规则^index\.php$-[L]
重写cond%{REQUEST_FILENAME}-F
重写cond%{REQUEST_FILENAME}-D
重写规则。archive.php[L]
domain.com不会重定向到www.domain.com


但是,下面的部分工作正常,将页面重定向到archive.php。

如果从匹配模式中删除
/
,规则是否有效

RewriteRule ^(.*)$ http://www.domain.com/$1 [R=301,L]

如果请求是不带尾随的
/
,则使用前导的
/
编写的规则可能不匹配。或者,mod_rewrite可能会删除前导的
/
,因为在
上下文中有
RewriteBase/
。这就是(“什么是匹配的?”框)似乎所说的。

这个问题可能更适合。我认为您的第一次重写中有一个输入错误:在匹配模式中,
{
应该是
[
。很好,抓住了Joachim。但是,仍然没有解决我的问题。