条件301重定向htaccess匹配域和uri

时间:2014-03-11 17:02:52

标签: url rewrite http-status-code-301

我有另一个重定向问题。我试图为一些重定向添加一个条件(我在同一个文件中有50+)。工作的重定向只是域条件,这意味着如果%{HTTP_HOST}匹配,那么它就是。现在我正在尝试与其中一些做到这一点,但也只需要重定向特定文件夹的东西。这就是我所拥有的:

RewriteEngine on
RewriteCond %{REQUEST_URI} ^/some/page.php
RewriteCond %{HTTP_HOST} (^|\.) domain\.com$
RewriteRule ^ https://www.example.com/some/new/page/ [R=301,L]

简单地说,我正在尝试匹配特定的域和URI,并将其转发到新的域和页面。例如: domain.com/account/blah.php

重定向到 www.example.com/some/new/page /

同时我还有另一个域的重定向,如果没有URI,它们都是这样指定的:

RewriteEngine on
RewriteCond %{HTTP_HOST} (^|\.) domain\.com$
RewriteRule ^ https://www.example.com/some/other/new/page/ [R=301,L]
RewriteCond %{REQUEST_URI} ^/some/page.php
RewriteCond %{HTTP_HOST} (^|\.) domain\.com$
RewriteRule ^ https://www.example.com/some/new/page/ [R=301,L]

知道我做错了吗?

1 个答案:

答案 0 :(得分:1)

<IfModule mod_rewrite.c>
    RewriteEngine On
    # Check domain matched but uri doesn't
    RewriteCond %{HTTP_HOST} (^|\.) domain\.com$ [NC]
    RewriteCond %{REQUEST_URI} !^/some/page.php [NC]
    RewriteRule ^ https://www.example.com/some/new/page/ [R=301,L]

    # Check domain matches and uri matches
    RewriteCond %{HTTP_HOST} (^|\.) domain\.com$ [NC]
    RewriteCond %{REQUEST_URI} ^/some/otherpage.php [NC]
    RewriteRule ^ https://www.example.com/some/other/new/page/ [R=301,L]
</IfModule>