1

处理通配符子域的问题有一个答案,但它并不能满足我的所有需求。我需要做所有这些,例如假设域是example.com

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

  2. 如果域是anyelse.example.com,它应该静默重定向到example.com,以便软件可以获取请求的子域并采取相应的行动。

  3. 此外,域名后面的任何规范如果不引用实际文件或目录,都应该重定向到index.php(同样,软件会弄清楚它的全部含义)。所以anything.example.com/some/search/engine/friendly/specification应该重定向到example.com/index.php

我可以让其中的一部分工作,但还没有完成整个事情。任何优惠!

4

1 回答 1

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]
于 2009-10-07T14:25:04.543 回答