1

だから私は自分のウェブサイトで検索を作成しようとしています.URLフレンドリーになるようにテキストをエンコードする必要があります. ただし、「<」記号を使用して何かを検索すると、「<」がエンコードされていないため、HTTP エラー 403 (アクセス禁止) が発生します。

これは私が使用しているコードです:

var search = $("#txtHomeSearch").val();

if(search != ""){
    var urlSearch = encodeURIComponent(search);
    window.location.href = "/search&s=" + urlSearch;
}

有効な URL の例: http://website.com/search&s=helloword
壊れた URL の例: http://website.com/search&s= <

おそらく問題は、以下を含む .htaccess ファイルにあります。

RewriteEngine on
RewriteRule ^([^.*]+)$ index.php?page=$1 [L]
ErrorDocument 404 /errorPages/404.php
4

2 に答える 2

0

ここには簡単なユーティリティがあります: http://www.the-art-of-web.com/javascript/escapeで、さまざまな Javascript エスケープ関数の動作を確認できます。ECMA 標準に従って、そのツールを使用して検証すると、「<」は、encodeURIComponent() 関数によって正しくエスケープされる必要があります。

「<」以外の文字が原因ではないでしょうか? encodeURIComponent が見逃した文字には、さまざまな救済策があります。1 つは、ここと別の場所にリストされている url_encode 関数です: javascript window.location do I need to escape?

于 2013-08-18T01:35:05.510 に答える