ajax page navigation not working after htaccess rewrite

浪子不回头ぞ 提交于 2019-12-13 04:45:51

问题


i use .htaccess to rewrite my url from

/list.php?pat=free&mainCol=maincate&subCol=shoes

to

/maincate/shoes

after rewrite, the ajax next page button is not working anymore. it should load list_pull.php from same folder as list.php

    $.post("list_pull.php",{
        pageCurrent:pageClick,      
        pullSubCol:$("#pullSubCol").val()});

and the htaccess is like this

RewriteRule ^([^/.]+)/([^/.]+)$ /list.php?pat=free&mainCol=$1&subCol=$2  [L]

i tried use full path http://www.mydomain.com/list_pull.php - not working i tried creating a folder "maincate" and put listpull.php inside, still not working.

by the way, i have another file same as listpull.php, and it works! the rewrite is like this

RewriteRule ^([^/.]+)$ /mainlist.php?pat=free&mainCol=$1  [L]

dont know if my question is clear enough, been trying to figure it out for 2 days now, still no luck.

thanks in advance for help!!


回答1:


You have redirected all the params after domain name to mainlist.php and the uri string with two / to list.php so i suggest you to add another specific rewrite rule for list_pull.php and replace [L] with [QSA]

QSA means that if there's a query string passed with the original URL, it will be appended to the rewrite (olle?p=1 will be rewritten as index.php?url=olle&p=1.

L means if the rule matches, don't process any more RewriteRules below this one.

RewriteRule ^call_ajax$ /list_pull.php  [QSA]

Now in your ajax call put url like this

$.post("/call_ajax",{
        pageCurrent:pageClick,      
        pullSubCol:$("#pullSubCol").val()
});

Edit Try htaccess.madewithlove.be to test your rewrite rules below i have attached some test rewrites which works fine for me

1) http://www.example.com/call_ajax to RewriteRule ^call_ajax$ /list_pull.php [QSA]

2) http://www.example.com/call/ajax to RewriteRule ^([^/.]+)/([^/.]+)$ /list.php?pat=free&mainCol=$1&subCol=$2 [QSA]

3) http://www.example.com/call to RewriteRule ^([^/.]+)$ /mainlist.php?pat=free&mainCol=$1 [QSA]




回答2:


Just add RewriteCond %{REQUEST_FILENAME} !-f before RewriteRule



来源:https://stackoverflow.com/questions/18814239/ajax-page-navigation-not-working-after-htaccess-rewrite

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!