2017-02-06 1 views
0

異なるApacheリダイレクトを組み合わせようとしています。私はちょうどLのastフラグを取り除くと思っていましたが、それはしませんでした(How to combine Apache redirects?参照)。 >www.example.org - - >www.example.org/products/別のApacheリダイレクトを組み合わせるにはどうすればいいですか?

しかし、私はむしろ

example.org必要があるだろう - 遅延を回避するために>www.example.org/products/

をそれは、次の2つのランディングページは

example.orgをリダイレクトします。 、

#FORCE WWW with products 

RewriteCond %{HTTP_HOST} ^example.org [OR] 
RewriteCond %{REQUEST_URI} !^products 
RewriteRule ^(.*)$ http://www.example.org/products/$1 [R=301] 

# FORCE WWW 
RewriteCond %{HTTP_HOST} !^www\.example\.org$ [NC] 
RewriteCond %{HTTP_HOST} !^$ 
RewriteRule ^(.*)$ http://www.example.org/$1 [R=301] 

# REDIRECT FROM ROOT TO PRODUCTS(.PHP) 
RewriteCond %{REQUEST_URI} ^/$ 
RewriteRule ^$ /products/ [R] 
RewriteRule ^products/$ /products/products.php 

# ADD TRAILING SLASH 
RewriteRule ^(([^/]+/)*[^./]+)$ http://www.example.org/$1/ [R=301] 

# INTERNAL REWRITE OF "products/myname/myversion/" to "products/products.php?name=myname&version=myversion" 
RewriteRule ^products/([a-z0-9-]+)/([0-9-]+)/$ products/products.php?name=$1&version=$2 [NC] 
RewriteRule ^products/([a-z0-9-]+)/$ products/products.php?name=$1 [NC] 

答えて

0

は現在、私はそれを試していなかった。このようにそれを試して、これらの行

RewriteCond %{REQUEST_URI} ^/$ 
RewriteRule ^$ /products/ [R] 
+0

感謝を削除します。ここでは

.htaccessファイルです。しかし、それは動作しません。私はあなたのコードは、 'leading'の' www'がない場合にのみ 'products'フォルダ*にリダイレクトされると思います。 – Daniel

+0

編集をお試しください! –

+0

もう一度ありがとうございます。 'example.com/products'は2番目の条件を満たしていないので、' www.example.com/products'にリダイレクトしないか、何か不足していますか?しかし、一般的な考え方はリダイレクトごとに1つの 'R'または' R = 301'フラグしか持たないということですか?だから、 'R(= 301)'ごとに、後に追加のリダイレクトを追加するかどうかにかかわらず、リダイレクトにつながるのだろうか? – Daniel

関連する問題