我有以下.htaccess代码,它成功地重写了子域目录。因此,如果用户访问jim.domain.com
,他们就会获得placeholder.php?page_type=profile
。但是,这也会影响主目录http://domain.com
。我喜欢它,所以带有子域的任何东西都被定向到placeholder.php页面,但是使用没有子域的主目录将照常运行,转到主目录中的index.php
。我怎么做到这一点?谢谢你的任何建议。
Options +FollowSymLinks
RewriteEngine on
RewriteBase /
RewriteCond %{HTTP_HOST} !^exclude.domain.(.*)
RewriteCond %{HTTP_HOST} !^www.domain.(.*)
RewriteCond %{HTTP_HOST} (.*)\.domain\.com
RewriteRule ^$ placeholder.php?page_type=profile [L,QSA]
答案 0 :(得分:0)
如果您希望test.domain.com
的所有请求都像评论一样转到domain.com/placeholder.php?page_type=profile
,那么您需要在重写中包含该域
Options +FollowSymLinks
RewriteEngine on
RewriteBase /
RewriteCond %{HTTP_HOST} !^exclude.domain.(.*)
RewriteCond %{HTTP_HOST} !^www.domain.(.*)
RewriteCond %{HTTP_HOST} (.*)\.domain\.com
RewriteRule ^$ http://domain.com/placeholder.php?page_type=profile [L,QSA]
这不会如何处理这部分
但是使用没有子域的主目录将照常运行,转到主目录中的index.php
因为没有重定向到index.php的文件/目录未命中规则。你需要那些,还是真的只想解决第一部分?
我也想知道您是否想要将profile
替换为子域匹配,在这种情况下您想要
RewriteRule ^$ http://domain.com/placeholder.php?page_type=%1[L,QSA]
但这两个示例都不会重写test.domain.com/longer_url
的任何路径,因为^$
仅匹配空URL路径。但是,在提出合适的Reerite之前,需要决定如何处理路径。