dongluobei9359 2015-04-08 18:40
浏览 47
已采纳

htaccess将带有查询字符串的域重定向到带有排除的子域

We have moved our site to a subdomain while on the main domain we have a new site with new url's. What we are trying to do is having the old url's redirect to the subdomain while the excluding the new url's.

here's examples of the old url's:

http://www.domain.co.il/index.php?dir=app_admin&page=ip_stat&op=list&pos=0

should be redirected to:

http://sub.domain.co.il/index.php?dir=app_admin&page=ip_stat&op=list&pos=0

While the new site url's (do not contain php) and the homepage should not be effected.

This is what our htaccess looks like:

It does redirect the url's to the sub, but does not exclude the new pages and redirect them to the subdomain home (sub.domain.com)

RewriteEngine on    
RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php [QSA,L]

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

RewriteCond %{REQUEST_URI} !contact(|$)
RewriteCond %{REQUEST_URI} !about(|$)
RewriteCond %{REQUEST_URI}  index\.php
RewriteRule ^(.*)$ http://sub.domain.com [R=301,L]

Hopefully someone can help us get this right, we get many 404 in our gwt now :/

Thanks for any help !

  • 写回答

3条回答 默认 最新

  • dsm1998 2015-04-08 19:14
    关注

    Fix some regex and reorder your rules:

    RewriteEngine on    
    RewriteBase /
    
    RewriteCond %{THE_REQUEST} !/(contact|about) [NC]
    RewriteCond %{THE_REQUEST} !\.(jpe?g|gif|bmp|png|tiff|css|js) [NC]
    RewriteRule ^(.+)$ http://sub.domain.com/$1 [R=301,L,NE]
    
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^ index.php [L]
    

    Also test this in a new browser to avoid old browser cache.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?