2017-12-14 10 views
2

書き換えルールで問題が発生しましたが、ハイフンの後にすべてを取得する書き換えルールを作成したいのですが、最後の単語を取得するだけですか?HTAccessハイフンで文字列を置き換えます

マイリンク:

http://www.website.com/home/24-nieuws/143-kip-kip-kip-donington.html 

は、私は次のようなルールがあります。このルールは私に奇妙な出力に含まを与える

RewriteRule ^home/24-nieuws/(.*)-(.*).html$ http://www.website.com/$2 [R=301,L] 

を、よく私はそれが奇妙見つける、しかしので、それができましたハイフンは正規表現文字として使用されますか?

出力:

http://www.website.com/donington 

これは、テキストのすべてをスキップして、ちょうど最後の単語を取得しますか?誰もが最初のハイフンと.htmlの間のすべてを取得するために何をしなければならないかを知っていますか?

答えて

1

あなたはこのルールを使用することができます

RewriteRule ^home/24-nieuws/[^-]*-(.+)\.html$ http://www.website.com/$1 [R=301,L,NC] 

[^-]*は0以上の非ハイフンにマッチ否定文字クラスです。最初のハイフンの前にマッチングを停止します。

それを動作させるために非貪欲数量詞を使用することも可能である:これは完璧に動作

RewriteRule ^home/24-nieuws/.*?-(.+)\.html$ http://www.website.com/$1 [R=301,L,NC] 

RegEx Demo

+1

ああありがとう!私はこれを知らなかったが、今はとても感謝する!これは将来大きな助けになるでしょう:D – Brum

関連する問題