.htaccess не работает, как ожидалось, в подпапке

109
14

У меня есть это правило перезаписи, помещенное в /dashboard/.htaccess [панель - это фактически папка]:

RewriteRule ^([^/]*)$ index.php?mode=$1 [L]

Моя структура - index.php? Mode = поддержка, хотя $ _SERVER ['QUERY_STRING'] выводит это:

mode=index.php

Example: site.com/dashboard/index.php?mode=support should be site.com/dashboard/support

Итак, как я могу заставить его анализировать значение параметра, а не сам файл.

спросил(а) 2021-01-25T17:38:04+03:00 4 месяца, 4 недели назад
1
Решение
63

Удалось решить его, выполняя дополнительные исследования регулярных выражений.

RewriteRule ^([a-z]+)$ index.php?mode=$1 [L,QSA]

Thi решила мою проблему, предпочла плюс вместо звездочки, потому что она говорит движку повторять ее ноль или более раз. (когда я на index.php, строка запроса пуста по мере необходимости)

ответил(а) 2021-01-25T17:38:04+03:00 4 месяца, 4 недели назад
46

Ваше правило соответствует всем, что начинается с не косой черты и не содержит косой черты в любом месте, когда ваш фактический путь

/dashboard/support

чтобы получить папку, на которой вы действительно хотите, вам нужна база там, как это

RewriteBase /dashboard/

Если это установлено выше правила, тогда ваша перенаправка должна быть в порядке

ответил(а) 2021-01-25T17:38:04+03:00 4 месяца, 4 недели назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема