2017-10-04 3 views
0

express-urlrewriteを使用すると、サブフォルダを効果的に削除する方法を見つけることができません。例えばノードexpress-urlrewriteを使用してサブフォルダを書き換える方法は?

app.use(rewrite(/^\/(en|es)\/[*]/, '/$1')); 

/en//

/en/homeは、これまで/home

私の試みになるべきになるべきどのようにenまたはesサブフォルダを書き直すのですか?

+0

[文字クラス](https://www.regular-expressions.info/charclass.html) '[]'は特別な意味を持っています。 '[*]'は星にマッチしますが、確かにあなたが気にしていたものではありません。 – Tomalak

答えて

0

普通の正規表現です。app.useの外側でテストしてください。

タスクは"の先頭から/enまたは/esを削除します。

文字列の先頭に/enまたは/esと一致する正規表現を書きましょう。偽陽性(/energy等)を回避するために、いずれかの場合のは、必ず以下のキャラクターを作ってみよう、/または?のいずれかである:/home/bla

"/en/home/bla".replace(/^\/(en|es)(?=[/?]|$)?/, '') 

結果。

app.use(rewrite(/^\/(en|es)(?=[/?]|$)?/, '')); 

正規表現内訳(私は正規表現リテラル固有のエスケープを削除しました):

^    # start of string 
/    # a forward slash 
(    # group 1 
    en|es   # "en" or "es" 
)    # end group 1 
(?=    # look-ahead 
    [/?]   # one of forward slash, question mark 
    |    # or 
    $    # end of string 
)    # end look-ahead 
関連する問題