2011-09-17 18 views
0

私はjQuery Mobileを使用しています。いくつかのエラーがありますが。index.phpを書き直すfoo = bar & bar = foo to index.php?foo = bar&bar = foo

たとえば、私はあなたのように&の代わりに私のHTML &を入れました。 jQueryはそれを正しく読み取ることができず、URLにそれが表示されたときにの代わりに&が表示されます。本当にそれはそう、私はmanallyすることはできませんそれは本当に迷惑なんだと、私はそれらの多くを使用し

example.com/index.php?foo=true&bar=false 

に行く必要があるとき

<a href="index.php?foo=true&amp;bar=false">Hello</a> 

ことが

example.com/index.php?foo=true&amp;bar=false 

に行きますすべてのget変数が変更され、非常に長いファイルになるため.htaccessを書きます可能なfooとbar。

私の質問は:&amp;から&に修正するための迅速な方法はありますか?

+0

出力する前に、HTMLを 'htmlentities'や' htmlspecialchars'のように渡していますか?既に「未処理」のHTMLに「&」エンティティを含めておき、それらの関数の1つを渡すと、デフォルトでそのエンティティをダブルエンコードします。これによりブラウザはURLを*実際には「&」を含んでいます。 –

答えて

0

文字列index.php?foo=true&amp;bar=falseは、属性値として使用すると、ブラウザによってindex.php?foo=true&bar=falseとしてデコードされます。

ので、このリンクをクリック:

<a href="index.php?foo=true&amp;bar=false">Hello</a> 

index.php?foo=true&bar=false、ないindex.php?foo=true&amp;bar=falseに移動します。

これは、&がHTMLの特殊文字で、&amp;が特別な意味を取り除くためにエンコードする方法であるためです。

<a href="index.php?foo=true&bar=false">と書くのは実際には無効で、<a href="index.php?foo=true&amp;bar=false">と書くことができます。


jQueryが間違って読むと、jQueryにバグがあるか、何か間違っていることがあります。

あなたはindex.php?foo=true&amp;bar=falseにやってリクエストを使用してのトンのユーザーがいる場合、あなたはこのような要求を書き換える必要があります。RewriteRuleが一致しないため

RewriteCond %{THE_REQUEST} ^(GET|HEAD) (.*)&amp;(.*) HTTP/[\d.]+$ 
RewriteRule %2&%3 [R] 

は(するRewriteCondと%{THE_REQUEST}上のマッチングを使用して

これは&amp;&にデコードしたURLにユーザーをリダイレクトします。 &amp;が複数ある場合、複数のリダイレクトがあります。

関連する問題