0

http ログに次のように表示されます: "GET /category/f%C2%ADile-to-download/ HTTP/1.1" 301 %AD はソフト ハイフン (見えない記号) です。

Apache へのクエリにソフト ハイフンが含まれているかどうか、含まれているかどうかを確認して削除する必要があります。ソフトハイフンを見つけて削除する最良の方法について何か提案はありますか? RewriteRule でいくつかのテストを行いましたが、行き詰まりました。

ありがとう!

4

2 に答える 2

0

私が理解しているように、 mod_rewrite はエスケープされていない文字を使用するため、ソフトハイフンを正しく一致させてから削除するには、.htaccessファイルを編集してUTF-8エンコーディングで保存する必要があります (ほとんどの最新のエディターはこれを行います) )。

次に、ルールにソフト ハイフンを入力する必要があります。以下は、入力から単一のソフトハイフンを削除します (はずです!? )が、前述のように、ファイルが UTF-8 形式であることに依存しています。

RewriteRule ([^-]*)-([^-]*) $1$2

-を実際の UTF-8 ダッシュに置き換える必要があることに注意してください。

おそらく、より簡単なオプションは次のとおりです。

RewriteRule ([^\xc2\xad]*)\xc2\xad([^\xc2\xad]*) $1$2 [N]

表示されている特定の UTF-8 コードを使用して、文字列から削除します。は、すべて[N]の書き換えルールを再実行する必要があります。これにより、残りのソフト ハイフンが削除されます。

于 2013-06-10T15:59:17.090 に答える