1

私はこのURLを持っています:

http://www.suplementospt.com/Goldnutrition-Pack-3x-Mega-Cla-(Portes-Gratis)

そして、私はそれをにリダイレクトする必要があります

http://www.suplementospt.com/Goldnutrition-Pack-3x-Mega-Cla

それは機能していません。問題はブラケットだと思います。

私のコード:

RewriteRule ^Goldnutrition-Pack-3x-Mega-Cla-(Portes-Gratis)?$ http://www.suplementospt.com/Goldnutrition-Pack-3x-Mega-Cla [R=301,L]
4

2 に答える 2

4

.htaccess は RegEx を使用して URL を照合し、括弧は RegEx の特殊文字であるため、エスケープする必要があります。

RewriteRule ^Goldnutrition-Pack-3x-Mega-Cla-\(Portes-Gratis\)$ http://www.suplementospt.com/Goldnutrition-Pack-3x-Mega-Cla [R=301,L]

また、次のコードを .htaccess ファイルの先頭に配置して、書き換えエンジンを有効にすることを忘れないでください。

RewriteEngine on
于 2013-08-08T14:11:50.390 に答える
0

あなたが尋ねていることはそれほど.htaccess具体的ではありませんが、いわゆる正規表現について、またはより具体的にはApache 拡張機能で使用される正規表現のフレーバーについてです。mod_rewrite

これらの正規表現はそこで説明されており、想定どおりであることがわかります。括弧は特殊文字です。

これらには特別な意味 (グループ化) があるため、「そのまま」 (逐語的に) 使用することはできず、エスケープする必要があります。これは、「文字」の意味を返す特別な意味を持つ文字 ((または など)) を接頭辞として付けることによって行われます。\

RewriteRule ^Goldnutrition-Pack-3x-Mega-Cla-\(Portes-Gratis\)?$ ...

この説明とリンクが、必要な書き換えルールでこれらすべての正規表現を記述するのに少し役立つことを願っています。

于 2013-08-08T14:14:01.330 に答える