2016-05-12 9 views
0

私たちのシステムでは、リンク(LTR)を含むヘブライ語(RTL)メッセージを送信します。奇妙なことに、一部のデバイス(Galaxy note 4モデル:SM-N910FおよびSM-N910C)はリンクの最後に余分な文字を追加します。そして、代わりにこれを示す:与えられたutf-8文字の外観を削除する書き換え規則

example.com/abc 

それは確かにSMSでこのリンクを示しているが、リンクを押したときにそれが行く:私は、これらのデバイスはこれらを追加しないように引き起こすことが何もできませんでし

example.com/abc%E2%80%8F%E2%80%8E 

キャラクター。だから私の最後の解決策は、同じURLに%E2%80%8Fまたは%E2%80%8E文字が含まれているURLを転送するために.htaccessファイルにRewriteRuleを追加することです。文字は削除されます。

例えば、私はところで、これらの文字は、RTL/LTRマークであり、そのユニコードidはU + 200F =%E2%80%8FとU + 200E =%E2%であるexample.com/aaa%E2%80%8Fbbb%E2%80%8Eccc

example.com/aaabbbcccにを書き換えたいです80%8E。ウィキペディアの See more

+0

CSSシムでこれを処理して、htaccessコードでこれをやろうとしません。とにかく動作しません。https://www.w3.org/International/articles/inline-bidi-markup/ –

答えて

1

してみてください。あなたのドキュメントルート内のhtaccessファイルで

RewriteCond %{THE_REQUEST} ^[A-Z]+\ +/([^\ \?]*)(?:%E2|%80|%8F)+([^\ \?]*) 
RewriteRule^/%1%2 [L,R=301] 

、好ましくはすでにそこに持っているすべての書き換えルール以上。

+0

'500内部サーバーエラー'。何か逃したのですか? – uriel

+0

@uriel申し訳ありませんが、それらのスペースから逃れるのを忘れました。編集を参照してください。また、RewriteEngine Onが必要な場合もあります。 –

+0

"%E2%80%8F"と "%E2%80%8E"のように見えるようです。しかし、http://の代わりにhttp://example.com/abc%E2%80%8F%E2%80%8Eをhttp://example.com/abc%25E2%2580%258F%25E2%258Eに転送しますexample.com/abc – uriel

関連する問題