2016-05-27 23 views
0

ここで正しい表現を検索しましたが、見つからないようです。私は数十のURLを書き直す必要があり、正規表現を使用して301をすべて1ページにリダイレクトしたいと考えています。301 RegExでリダイレクト

www.example.com/2008/07/garbage.html/this-is-what-i-want

www.example.com/2005:

現在のページは、すべてのようなものです/09/moregarbage.html/this-is-what-i-want

と私は真ん中のうち、すべてのものをスライスし、

www.example.com/this-is-whatに、両方のページを取りたいです-i-want

+0

ようこそスタックオーバーフロー。すでにこれを解決しようとしたことの1つの例を挙げることはできますか? – BlackVegetable

+0

どのWebサーバーですか?サーバー側のスクリプト言語? Javascriptのリダイレクト? – C14L

+0

私はリダイレクトを実装するためにwordpressのRedirectionツールを使用しています。私は、これを動作させるために、いくつかの異なるリダイレクト・バリアントを試しました。私はそれをwww.mydomain.com/this-is-what-i-want/2008/07/garbage.htmlにしてから^/this-is-what-i-want/(+)$しかし、何も動作しないと私は何をして404sで終わっている – cvs

答えて

1

RewriteEngine On 

RewriteRule ^\d{4}/.*/([^/]+)/?$ /$1 [L,R=301] 
+0

ありがとう、あなたは\ d {4} /で、私が保つつもりの表現になっていますか? – cvs

+0

'\ d {4}'は開始時の年の部分と一致します。私たちが保持している部分は最後の '([^ /] +)'です。それを試しましたか? – anubhava

+1

ええ、私はコメントを投稿した後にそれを理解しました - 私はやった、それは完璧に働いた、ありがとう! – cvs

0

あなたが最初から最後まで削除されたすべてを望んでいるようです...

あなたが働いている言語はわかりませんが、このようなものは正規表現として働き、マッチしたかった

((HTTPS:??//)[^ /] +)/.+(/ [^ /] +)

第一及び第三のマッチグループは例えば...あなたが欲しいパーツが含まれています、 Pythonで:

import re 
str = 'http://www.example.com/test/this.com/this-is-what-I-want' 
regexp = r'((https?://)?[^/]+)/.+(/[^/]+)' 
match = re.match(regexp, str) 
print match.group(1) + match.group(3) 

利回り:あなただけRewriteEngine線の下に、この書き換えルールを使用することができます.htaccessのあなたの主なWPで

$ python t.py 
http://www.example.com/this-is-what-I-want 
+0

ありがとうポール。だから私は文字列を作ることができました^ /これは - 何 - 私が望む、それはそれの前に任意の "もの"のために動作するはずですよね? – cvs

+0

誰かがWPに具体的に答えたのを見る。 :) –