2015-05-29 147 views
1

我使用下面的htaccess重写规则将旧的url文件重定向到新的。combine RewriteRule htaccess 301重定向

第一重写规则重定向到新的URL文件,如果请求的文件路径为fares/airfares/anyword-fares/

第二重写规则重定向到只有请求的URL路径是flights/新的URL文件。

我的第一个问题是,我是正确写下它们还是留下什么东西?

第二个问题是,我可以将两个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
  1. 是你的规则是正确的新的URL文件。
  2. 是的两个规则可以合并为一个。

使用此的.htaccess:

Options +SymLinksIfOwnerMatch 
RewriteEngine On 

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

它的工作原理,但我不得不删除''前'*'?它现在看起来像是'RewriteRule ^(?:。* fares | flights)/(。*)$/airfares-flights/$ 1 [R = 301,NC,L]' – Mike

+0

肯定是应该工作,编辑。 – anubhava

+1

谢谢。如果不使用通配符,它​​会看起来像这样? 'RewriteRule ^(?: jobs | careers)/(。*)$/airline-jobs-careers/$ 1 [R = 301,NC,L]' – Mike