htaccess重写条件

时间:2011-12-22 07:03:35

标签: .htaccess mod-rewrite

我想要一个htaccess modrewrite规则将我的整个网站重定向到一个新域但文件夹除外。比如,我的网站是www.mydomain.in,我想重定向它www.mydomain.com但是,如果url是www.domain.com/new_folder那么它不应该重定向,留在这个网站上。

我的htaccess就在这里

   RewriteCond %{REQUEST_URI} !^(/users/)$
   RewriteCond %{HTTP_HOST} ^mydomain.in$ [OR] 
   RewriteCond %{HTTP_HOST} ^www.mydomain.in$
   rewriterule ^(.*)$ http://mydomain.com/$1 [R=301,L]

这不起作用。如果我输入www.mydomain.in/users/,那么请访问www.mydomain.com/users /

有人可以帮帮我吗?

2 个答案:

答案 0 :(得分:3)

这是正确的语法。 尝试并回复我是否有用....

RewriteCond %{HTTP_HOST} ^mydomain.in$ [OR]
RewriteCond %{HTTP_HOST} ^www.mydomain.in$ 
RewriteCond %{REQUEST_URI} !^/users
rewriterule ^(.*)$ http://mydomain.com/$1 [R=301,L]

答案 1 :(得分:0)

试试这个并告诉我它是否有效:

RewriteCond %{HTTP_HOST} mydomain.in
RewriteCond !^(/users_folder)
RewriteRule (.*) http://mydomain.com/$1 [R=301,L]

如果不起作用请尝试:

RewriteCond %{HTTP_HOST} mydomain.in
RewriteCond !^(users_folder)
RewriteRule (.*) http://mydomain.com/$1 [R=301,L]

两个提示:

请尝试使用RewriteLog指令:它可以帮助您找出此类问题:

# Trace:
# (!) file gets big quickly, remove in prod environments:
RewriteLog "/web/logs/mywebsite.rewrite.log"
RewriteLogLevel 9
RewriteEngine On

我可以请你在你的问题中添加重写日志吗?


我最喜欢检查regexp的工具:

http://www.quanetic.com/Regex(别忘了选择ereg(POSIX)而不是preg(PCRE)!)