@arturka_v_10

Как сократить число правил в корневом .htaccess сайта и исключить папку /ajax?

Переписывал свое древнее рукоделие и задался вопросом (после изучения PDO'шных скриптов), как мне сократить строки в .htaccess и сделать их универсальными.

Имеем:
AddDefaultCharset UTF-8
php_flag display_errors On

RewriteEngine On
#RewriteCond %{ENV:HTTPS} !on
#RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

RewriteRule ^home?$ index.php?nav=home [L]
RewriteRule ^about?$ index.php?nav=about [L]
RewriteRule ^contacts?$ index.php?nav=contacts [L]
RewriteRule ^news?$ index.php?nav=news [L]
RewriteRule ^recovery?$ index.php?nav=recovery [L]
RewriteRule ^agreement?$ index.php?nav=agreement [L]
RewriteRule ^reg?$ index.php?nav=reg [L]
RewriteRule ^login?$ index.php?nav=login [L]
RewriteRule ^logout?$ index.php?nav=logout [L]
RewriteRule ^account?$ index.php?nav=account [L]
RewriteRule ^account/(.*)?$ index.php?nav=account&link=$1 [L]


Сократил до:
AddDefaultCharset UTF-8

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^webhook\.php$ webhook.php [L]
#RewriteCond %{REQUEST_URI} !^/ajax/

RewriteRule ^(.*)$ index.php?nav=$1 [L,QSA]
RewriteRule ^(.*)/(.*)$ index.php?nav=$1&link=$2 [L,QSA]


И вроде бы работает, но заметил что запросы по адресу /ajax/process.php?event= не отрабатывают.
Перешел на этот адрес и увидел что он теперь вместо белой страницы с информацией участвует в верстке. Корневой файл webhook.php смог из нее убрать и он работает как и раньше, но вот с папкой и файлом не могу допереть. Я всегда не мог одуплить работу с .htaccess поэтому если сильны в этом то объясните или строчкой кода подсобите
  • Вопрос задан
  • 32 просмотра
Решения вопроса 1
@AUser0
Чем больше знаю, тем лучше понимаю, как мало знаю.
Как минимум сделать
RewriteRule ^webhook\.php$ webhook.php [L]
RewriteRule ^ajax/process\.php ajax/process.php [L]
#RewriteCond %{REQUEST_URI} !^/ajax/

RewriteRule ^(.*)/(.*)$ index.php?nav=$1&link=$2 [L,QSA]
RewriteRule ^(.*)$ index.php?nav=$1 [L,QSA]
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы