0

我使用 .htaccess 重写我的网址

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

/主菜/鞋子

重写后,ajax 下一页按钮不再起作用。它应该从与 list.php 相同的文件夹加载 list_pull.php

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

htaccess 是这样的

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

我尝试使用完整路径http://www.mydomain.com/list_pull.php - 不起作用我尝试创建一个文件夹“maincate”并将 listpull.php 放入其中,但仍然无法正常工作。

顺便说一句,我有另一个与 listpull.php 相同的文件,它可以工作!重写是这样的

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

不知道我的问题是否足够清楚,现在已经尝试了 2 天,仍然没有运气。

提前感谢您的帮助!!

4

2 回答 2

1

您已将域名后的所有参数重定向到以及带有两个tomainlist.php的 uri 字符串,因此我建议您添加另一个特定的重写规则并将[L]替换为[QSA]/list.phplist_pull.php

QSA意味着如果有一个查询字符串与原始 URL 一起传递,它将被附加到 rewrite (olle?p=1将被重写为index.php?url=olle&p=1.

L表示如果规则匹配,则不再处理低于此规则的任何 RewriteRules。

RewriteRule ^call_ajax$ /list_pull.php  [QSA]

现在在你的 ajax 调用中像这样放置 url

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

编辑尝试htaccess.madewithlove.be在下面测试您的重写规则,我附上了一些对我来说很好的测试重写

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

在此处输入图像描述

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

在此处输入图像描述

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

在此处输入图像描述

于 2013-09-15T15:54:43.973 回答
0

只需RewriteCond %{REQUEST_FILENAME} !-f在 RewriteRule 之前添加

于 2013-09-18T04:17:21.317 回答