【问题标题】:encodeURIComponent is failingencodeURIComponent 失败
【发布时间】:2013-08-18 01:03:43
【问题描述】:

所以我试图在我的网站中创建一个搜索,我需要对一些文本进行编码,以便它对 URL 友好。但是,如果我用“

这是我正在使用的代码:

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

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

有效网址示例:http://website.com/search&s=helloword
网址损坏示例:http://website.com/search&s=

也许问题出在我的 .htaccess 文件中,其中包含:

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

【问题讨论】:

  • < 不是 URL 中的特殊字符,因此不需要编码。
  • 当“
  • 你用的是什么服务器?
  • 这种听起来像 asp.net 请求验证,但我认为您会收到 500 错误,而不是 403。
  • Xampp Apache。我有一个创建根 htaccess,这可能是导致问题的原因。 RewriteRule ^([^.*]+)$ index.php?page=$1 [L]

标签: javascript jquery .htaccess urlencode url-encoding


【解决方案1】:

这里有一个简单的实用程序:http://www.the-art-of-web.com/javascript/escape,用于验证各种 Javascript 转义函数的操作。根据 ECMA 标准,并使用该工具进行验证,“

会不会是“javascript window.location do I need to escape?

【讨论】:

【解决方案2】:

尝试使用[B] 标志转义您的反向引用。

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

【讨论】:

    猜你喜欢
    • 2014-01-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多