0

我有一个域 oldexample.com,并且我想仅在未提供参数时将访问该域的用户重定向到 newexample.com。在域提供参数的情况下,它应该重定向到其他地方 - 所以,oldexample.com/?id=5 不应该重定向到 newexample.com,而是我想将它重定向到 newexample.com 中的某个内部目录,比如说到 newexample.com/dir/5。

以下是我希望重定向如何工作的摘要:

oldexample.com -> newexample.com
oldexample.com/?id=3 -> newexample.com/dir/3
oldexample.com/index.php?id=6 -> newexample.com/dir/6

那么我将如何在 htaccess 中编写 RewriteRules 来完成这项工作呢?

4

1 回答 1

3

尝试:

RewriteEngine On

# for /
RewriteCond %{HTTP_HOST} ^oldexample.com$ [NC]
RewriteCond %{QUERY_STRING} !id=
RewriteRule ^$ http://newexample.com/ [L,R=301]

# for /?id=###
RewriteCond %{HTTP_HOST} ^oldexample.com$ [NC]
RewriteCond %{QUERY_STRING} ^id=([0-9]+)
RewriteRule ^(index.php)?$ http://newexample.com/dir/%1? [L,R=301]

最后一条规则与/和匹配/index.php。这些规则需要位于oldexampl.com文档根目录的 htaccess 文件中。

于 2012-08-26T22:28:28.710 回答