结合RewriteRule htaccess 301重定向

时间:2015-05-29 05:52:57

标签: regex apache .htaccess mod-rewrite redirect

我正在使用以下htaccess重写规则将旧的url文件重定向到新的。

如果请求的文件路径为fares/airfares/anyword-fares/等,则第一个RewriteRule会重定向到新的url文件。

仅当请求的网址路径为flights/时,第二个RewriteRule才会重定向到新的网址文件。

我的第一个问题是,我是否正确地写了它们或留下了什么?

第二个问题是,我可以将两个RewriteRules合并为一个或使用重写条件将它们合并为一个吗?

我问,因为我将添加更多会重定向到airfares-flights/的新网址文件

# For security reasons, Option followsymlinks cannot be overridden.
#Options +FollowSymLinks
Options +SymLinksIfOwnerMatch
RewriteEngine On

RewriteRule ^.*fares/(.*)$ /airfares-flights/$1 [R=301,NC,L]
RewriteRule ^flights/(.*)$ /airfares-flights/$1 [R=301,NC,L]

1 个答案:

答案 0 :(得分:1)

  1. 是的,你的规则是正确的。
  2. 是的,这两条规则可合并为一条。
  3. 使用此.htaccess:

    Options +SymLinksIfOwnerMatch
    RewriteEngine On
    
    RewriteRule ^(?:.*fares|flights)/(.*)$ /airfares-flights/$1 [R=301,NC,L]