通过使用带有mod_rewrite的ajax来获取数据

时间:2014-01-15 21:36:06

标签: php ajax .htaccess mod-rewrite

请忍受我,我不知道如何解释我的问题,我是新的mod re_writing我有两页

  1. 的index.php
  2. 的search.php
  3. index.php有一个搜索字段和一个div来获取数据。搜索字段使用Ajax从数据库中提供即时结果。

    作为

    search field with instant results

    带有即时结果的搜索字段

    当我在index.php上时,它给我正确的结果,在这里我使用的重写规则转为

    http://localhost/user_profiles/index?u=tol
    

    http://localhost/user_profiles/index/u/tol
    

    并将个人资料视图显示为

    profile view

    这两个网址都给了我正确的结果,但问题是当我在

    时的ajax
    http://localhost/user_profiles/index?u=tol
    

    ajax工作得很好并且给我正确的结果但是当我在

        http://localhost/user_profiles/index/u/tol
    

    它给出了奇怪的结果 weird result

    我不知道如何修复它是我的re_write规则

    Options +FollowSymLinks
    RewriteEngine on
    RewriteRule u/(.*) index.php?u=$1 [L,QSA]
    

    index.php的另一个规则就是索引

    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME}\.php -f
    RewriteRule ^(.*)$ $1.php
    

    我的ajax查询是

    maq.open('GET','search?q='+userVal,true);
    

    请帮帮我。

1 个答案:

答案 0 :(得分:2)

请记住,文件引用在JavaScript中是相对的。

当您进入重写页面时,您需要使用以下内容更新指向search的链接:

maq.open('GET', '../../search?q='+userVal, true);

基本上,我们所在的虚拟目录中有两个目录(即从user_profiles/index/u/tol/searchuser_profiles/index/search)。

或者,您可以使用前导/相对于根指定它,例如:

maq.open('GET', '/user_profiles/index/search?q='+userVal, true);