2009-10-07 51 views
1

对于处理通配符子域名的问题有一个答案,但它不能满足我所有的需要。我需要做的所有这些,假设例如域是example.com使用Apache处理通配符子域名,不包括www,包括SEF

  1. 如果给出的域是www.example.com应该301重定向到example.com因为我不希望重复的内容会在搜索引擎中产生问题。

  2. 如果域是anythingelse.example.com应该静静地重定向到example.com使软件可以拿起请求什么子域名并据此采取行动。

  3. 此外,并非指实际的文件或目录应该被重定向到的index.php域名之后的任何规范(再次软件会找出这一切的意思)。所以anything.example.com/some/search/engine/friendly/specification应该重定向到example.com/index.php

我可以得到这部分工作,但尚未实现整个事情。任何优惠!

回答

0

尝试下列规则:

# 1. rule 
RewriteCond %{HTTP_HOST} =www.example.com 
RewriteCond %{HTTPS} ^on(s)| 
RewriteRule^http%1://example.com%{REQUEST_URI} [L,R=301] 

# 2. rule 
RewriteCond %{HTTP_HOST} ^([^/.]+)\.example\.com$ 
RewriteRule^/absolute/filesystem/path/to/example.com%{REQUEST_FILENAME} [L] 

# 3. rule 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule^index.php [L]