1

我已经在本地设置了通配符域以在 .dev 上进行测试

我正在尝试重写以下 URL:

http://location.domain.dev/

http://www.domain.dev/site/location

我希望www子域中的任何请求始终转到 www.domain.dev 但如果对 location.domain.dev 提出任何请求,我想将该请求保留在地址栏中(即我不希望人们看到潜在的变化)

我目前在我的 .htaccess 中有以下内容

<IfModule mod_rewrite.c>
  Options +FollowSymLinks
  RewriteEngine On

  RewriteBase /

  RewriteCond %{HTTP_HOST} ^([^.]+)\.domain\.dev
  RewriteRule ^(.*)$ http://domain.dev/site/%1 [QSA,NC]

  # Removes index.php
  RewriteCond $1 !\.(gif|jpe?g|png)$ [NC]
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteRule ^(.*)$ /index.php?/$1 [L]
</IfModule>

这甚至可能吗?

4

1 回答 1

0

你很接近。为了不重定向浏览器(导致地址栏改变),您需要摆脱http://domain.dev重写规则目标的一部分:

RewriteRule ^(.*)$ /site/%1/$1 [QSA,NC]

假设*.domain.devwww.domain.dev具有相同的文档根目录。如果它们不同,您可能必须启用 mod_proxy 并添加一个P标志,以便请求被代理而不是重定向浏览器:

RewriteRule ^(.*)$ http://domain.dev/site/%1/$1 [QSA,NC,P]
于 2012-08-10T11:43:25.093 回答