【问题标题】:How to write .htaccess file for AJAX page如何为 AJAX 页面编写 .htaccess 文件
【发布时间】:2015-06-23 10:13:22
【问题描述】:

我正在开发一个将作为 CMS 开发的网站。所以我正在编写 .htaccess 文件。页面链接和 url 工作正常,但是当我执行 ajax 请求时,我收到 404 错误的 url。我正在放置我的 .htaccess 文件代码和我正在调用的 ajax 请求。

.htaccess 文件

RewriteRule ^single _single_Page.php [NC,L]
RewriteRule ^single/([A-Za-z0-9-]+)/?$ _single_Page.php?subid=$1 [NC,L]
RewriteRule ^findcontents/([A-Za-z0-9-]+)/?$ _findContentTitle.php?data=$1 [L,QSA]

使用 JQuery 的 AJAX 请求

$('.search').keyup(function(e){
    var data=$(this).val();
    data="data="+data;
    $.ajax({
        url:'/findcontents',
        type:'POST',
        data:data,
        success:function(result){
            if(result==""){
                $('.result p').html("No result found.<br>Please make correct search.");
            }else{
                $('.result p').html(result);
            }
            $('.result').css('visibility','visible');
        },
        error:function(error){console.log(error);}
    });

});

请朋友们告诉我我哪里错了,因为我需要尽快解决它。

谢谢....

【问题讨论】:

  • 从您的 ajax 脚本调用的实际 URL 是什么以及应该重写什么?
  • 上面写过的 ajax 调用我使用的是相同的。但问题已通过以下答案解决。现在一切都在工作到现在。

标签: php jquery ajax .htaccess


【解决方案1】:

我认为它与 apache 的关系比与 ajax 的关系更大。无论如何 - 你的 RewriteRule 是^findcontents/([A-Za-z0-9-]+)/?$,你发布到 url '/findcontents'。您尝试发帖到'/findcontents/asdf' 吗? 另一种选择是将^findcontents$ 添加到您的规则中。

如果这些都不适合您,请提供服务器日志中的更多信息。

【讨论】:

  • 感谢 Dekel,您的第一个选项 '/findcontents/asdf' 工作正常。但是如果我只想按照上述问题中给出的方式通过 post 方法执行 ajax 请求呢?
  • 检查我的其余回复...您应该将 ^findcontents$ 添加到您的规则中。当您发布到 /findcontents 时,该字符串与 ^findcontents/SOMETEXT$ 不匹配(就像您当前的规则一样)。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-07-08
  • 2019-04-14
  • 2014-02-28
  • 1970-01-01
  • 2016-03-17
相关资源
最近更新 更多