htaccess“沉默”重定向

时间:2012-03-02 11:09:24

标签: php .htaccess redirect

我的htaccess有点麻烦,也许你可以帮助我。
我想像我这样重定向我的请求:

www.fakedomain.mydomain.com/dev> www.mydomain.com/dev/events/fakedomain.php

我想,HTTP_HOST将是fakedomain.mydomain.com,但开发部分也很重要。我的最后一次尝试是:

RewriteCond %{HTTP_HOST} ^(www\.)?([^.]+)\.mydomain\.com [NC]
RewriteRule  ^(.*)$ /dev/events/%2 [L]

此重定向显示在浏览器的顶部,我想避免这种情况。
谢谢你的时间

1 个答案:

答案 0 :(得分:1)

如果您使用DOCROOT/.htaccess,则应使用:

RewriteEngine On
RewriteBase   /

RewriteCond %{HTTP_HOST}         ^(www\.)?(\w+)\.mydomain\.com  [NC]
RewriteRule ^dev/(?!events/)     dev/events/%2.php              [L]

正则表达式的(?!events/)位称为先行断言,这可以防止规则匹配/dev/events/something,从而防止重写循环。

如果您使用DOCROOT/dev/.htaccess,则应使用:

RewriteEngine On
RewriteBase   /dev

RewriteCond %{HTTP_HOST}      ^(www\.)?(\w+)\.mydomain\.com  [NC]
RewriteRule ^(?!events/)      events/%2.php                  [L]

正则表达式的(?!events/)位称为先行断言,这可以防止规则匹配/dev/events/something,从而防止重写循环。