Вопрос

У меня есть файл ajax, который называется, когда кто-то начинает вводить в строке поиска. Недавно я убираю свои URL-адреса и удаляя файл Extencies, добавляя конечные кособыки, с тех пор мой файл Ajax не выглядит не загруженным больше. Может кто-нибудь помочь? вот моя HTACCESS до сих пор

Options +FollowSymlinks
Options +Indexes
RewriteEngine on


RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^([^/]+)/$ $1.php
RewriteRule ^([^/]+)/([^/]+)/$ /$1/$2.php

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !(\.[a-zA-Z0-9]{1,5}|/)$
RewriteRule (.*)$ /$1/ [R=301,L]

RewriteCond %{THE_REQUEST} ^[A-Z]+\ /[^.#?\ ]+\.php([#?][^\ ]*)?\ HTTP/
RewriteRule ^([^.]+)\.php$ /$1 [R=301,L]
Это было полезно?

Решение

Предполагая, что ваши запросы Ajax переходят на /includes Папка, и ваши обычные страницы нет, мы можем немного изменять ваши правила, чтобы они выглядели так (в том числе CAGS ' комментировать о RewriteCond):

Options +FollowSymlinks
Options +Indexes

RewriteEngine on

# We'll do the redirect first, so no other rules get in the way
RewriteCond %{THE_REQUEST} ^[A-Z]+\ /([^.#?\ ]+)\.php([#?][^\ ]*)?\ HTTP/
# Make sure the request didn't start with "includes"
RewriteCond %1 !^includes/
RewriteRule ^([^.]+)\.php$ /$1 [R=301,L]

RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)/$ $1.php
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)/([^/]+)/$ /$1/$2.php

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !(\.[a-zA-Z0-9]{1,5}|/)$
RewriteRule (.*)$ /$1/ [R=301,L]

Я также думаю, что вы либо хотели /? в конце правил в центральном блоке или /$1/ как замена на правило в первом блоке, так что перенаправить из /page.php к /page Правильно интерпретируется после первого перенаправления (я думаю, что теперь вы будете перенаправлены дважды, один раз в первом блоке, и снова на последнем блоке).

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top