我已在本地设置通配符域以便在.dev上进行测试
我正在尝试重写以下网址:
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>
这甚至可能吗?
答案 0 :(得分:0)
你非常接近。为了不重定向浏览器(导致地址栏改变),您需要摆脱重写规则的目标http://domain.dev
部分:
RewriteRule ^(.*)$ /site/%1/$1 [QSA,NC]
假设 * .domain.dev 和 www.domain.dev 具有相同的文档根目录。如果它们不同,您可能必须启用mod_proxy并添加P
标志,以便请求代理而不是重定向浏览器:
RewriteRule ^(.*)$ http://domain.dev/site/%1/$1 [QSA,NC,P]