为什么mod_rewrite重定向到/index.php/index.php/index.php等



我希望每个子域都充当一个文件夹,所以基本上:

projects.dev -> /
test.projects.dev -> /test
amazing-project.projects.dev -> /amazing-project

我的虚拟主机文件中有这段代码:

<VirtualHost *:80>
  ServerName projects.dev
  DocumentRoot "D:/xampp/htdocs/projects"
  ServerAlias *.projects.dev
  RewriteEngine on
  RewriteCond %{HTTP_HOST} ^(.*).projects.dev
  RewriteRule ^/(.*)$ "D:/xampp/htdocs/projects/%1/$1" [L,R=301]
</VirtualHost>

但是,当我转到"designs.projects.dev"时,它被重定向到"designs.projects.dev/index.php/index.php/index.php/index.php/"(/index.php 持续一段时间)。

有谁知道为什么会这样?

谢谢。

您可以使用

<VirtualHost *:80>
  ServerName projects.dev
  ServerAlias *.projects.dev
  DocumentRoot "D:/xampp/htdocs/projects"
  RewriteEngine on
  RewriteCond %{ENV:REDIRECT_STATUS} ^$
  RewriteCond %{HTTP_HOST} ^(?!www.)([^.]+).projects.dev$ [NC]
  RewriteRule ^ /%1%{REQUEST_URI} [L]
</VirtualHost>

最新更新