2016-10-12 13 views
1

私はフォロードメインの例をリダイレクトしています。htaccessパスのないサブドメインのリダイレクト

example.domain.tld to domain.tld/foo/example-foo.html 

これは正しく動作しますが、同じサブドメインに特定のスラッグを含むパスがある場合は、別の方法を使用する必要があります。だから私は、私は私の現在のhtaccessファイルは

RewriteCond %{HTTP_HOST} !^(www|staging)\. [NC] 
RewriteCond %{HTTP_HOST} ^(.*)\.(.*)\.de [NC] 
RewriteCond %{REQUEST_URI} !^(foo|foo2)[NC] # <== not working 
RewriteRule (.*) https://www.%2.de/foo/%1-foo.html [R=301,L] 
+0

ないあなたが本当にしたいが、私は次のような問題を見ることができるかを理解するようにしてください。後方参照 '%2'と'%1'は 'RewriteRule'の前の最後の' RewriteCond'に逆参照されます。したがって、少なくともRewriteCondを上に移動して、RewriteCondをRewriteRondの直前に置くようにしてください。 – Zimmi

答えて

1

REQUEST_URIをリダイレクト

example.domain.tld/foo/ 

このような状況にリダイレクトを書いて、現在のリダイレクトを防止したい/で始まり、あなたは最終的に条件を捕捉しておく必要がある必要があります。

これは動作するはずです:

RewriteCond %{HTTP_HOST} !^(www|staging)\. [NC] 
RewriteCond %{REQUEST_URI} !(^|/)(foo|foo2) [NC] 
RewriteCond %{HTTP_HOST} ^([^.]+)\.([^.]+)\.de [NC] 
RewriteRule (.*) https://www.%2.de/foo/%1-foo.html [R=301,L] 
+1

解決策を見つけました。 '/'で始める必要はありませんが、ミスマッチは '!^'を1つの '!'の代わりに使用しました。ご回答有難うございます – directory

関連する問題