Я использую .htaccess, чтобы переписать мой url из
/list.php?pat=free&mainCol=maincate&subCol=shoes
в
/ maincate / обувь
после перезаписи кнопка следующей страницы ajax больше не работает. он должен загрузить list_pull.php из той же папки, что и list.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 дней, все равно не повезло.
Заранее спасибо за помощь!
Вы перенаправили все параметры после имени домена в mainlist.php
и строку uri с двумя /
в list.php
поэтому я предлагаю вам добавить другое конкретное правило перезаписи для list_pull.php
и заменить [L] на [QSA]
QSA
означает, что если строка запроса передана с исходным URL-адресом, она будет добавлена к переписыванию ( 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() });
Редактируйте Try htaccess.madewithlove.be, чтобы протестировать ваши правила перезаписи ниже, я приложил некоторые перезаписи тестов, которые отлично работают для меня
1) http://www.example.com/call_ajax – 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]
Просто добавьте RewriteCond %{REQUEST_FILENAME} !-f
перед RewriteRule