清洁网址mod_rewrite&通配符子域

时间:2012-11-10 00:32:12

标签: php mod-rewrite subdomain

我有这个网址

http://domain.com/blogs/directory-param

使用此规则

RewriteBase / blogs / directory / RewriteRule ^ / blogs / directory - ([A-Za-z0-9 - ] +)$ /blogs/directory/index.php?cat=$1 [L]

所以我得到/blogs/directory/index.php?cat=param现在问题如下:

我使用通配符子域名,因此每个* .domain.com都会映射到domain.com/blogs/,例如soeren.domain.com会映射到domain.com/blogs等等......

我现在的问题是我想要一个针对soeren.domain.com/directory-param的规则,该规则指向domain.com/blogs/directory?index.php?cat=param

你有什么想法吗?

2 个答案:

答案 0 :(得分:0)

好吧,要删除子域部分,请尝试外部重定向:

RewriteCond %{HTTP_HOST} ^([^.]+)\.domain\.com$
RewriteRule (.*) http://domain.com$1 [R,L,QSA]

这是您现有规则之前和之后的事。

答案 1 :(得分:0)

这最终对我有用:

RewriteCond %{HTTP_HOST} ^[^.]+\.domain\.com$  
RewriteCond %{REQUEST_URI} !^/directory(/|$)  
RewriteRule ^blogs/directory-([A-Za-z0-9-]+)$ /directory/index.php?cat=$1 [L,QSA]

@Archimedix:非常感谢!