2017-08-25 22 views
0

新しいディレクトリに何百ものURLをリダイレクトし、.htmlの末尾がないようにしたい。301新しいディレクトリにリダイレクトして.htmlを使わない

古いURL:domain.com/content/lorem-ipsum.html

新しいURL:domain.com/new/lorem-ipsum

ので、私は.htmlなしに.htmlからすべてのURLをリダイレクトし、リダイレクト/new/へと/content/からすべてのURLをリダイレクトリダイレクトを必要とします。それともそれは

古いのように1回のリダイレクトで行うことができますdomain.com/content/*.html

新しい:domain.com/new/*

+0

これまでに何を試しましたか?私たちにいくつかのコードを教えてください。 – Bananaapple

+0

何も、これを行う方法がわかりません...私はリダイレクトで基本的な経験がありますが、これは高いレベルです。 :-) – user6573193

答えて

1

をそれを使用する方法に関するチュートリアルを読む:

https://www.sitepoint.com/guide-url-rewriting/

http://www.elated.com/articles/mod-rewrite-tutorial-for-absolute-beginners/

https://code.tutsplus.com/tutorials/an-in-depth-guide-to-mod_rewrite-for-apache--net-6708

は、あなたが始めるのに役立つし、あなたの現在の問題を解決するために、これを試してみてください。

RewriteEnging On 
RewriteRule ^content/(.+)\.html /new/$1 [R=301,L] 

デモここに:http://htaccess.mwl.be?share=c73ccb42-e5aa-5e1f-b672-5aac32913912

説明:パターンでコンテンツから始まるURLを探すようサーバーに指示しています - ^content/の後に、いずれかの文字((.+))があり、最後に.html - \.htmlという文字が続きます。

.+の周囲の()に注意してください。これは、Apacheに変数match-$1を保存するように指示します。あなたの例ではlorem-ipsum$1に格納されています。

$1は、その後、我々はそれが$1に格納されているものが続き、/new/に行くに伝える置換にアクセスすることができます。私たちは今、リダイレクトされ、この要求のためにそれを必要としないので、R=301さらにルールLの処理を停止する -

は最後に フラグセクションでは、Apacheが301リダイレクトを発行するように指示しています。

1

次のリダイレクトを使用することができます:あなたはRewriteRule documentationを見ている必要があり

RedirectMatch 301 ^/dir/(.+)\.html$ http://example.com/new/$1 
関連する問題