Я пытаюсь получить .htaccess
файл RewriteRule
в своем веб-приложении. Мне нужно двойное правило для соответствия двум форматам URL, которые могут произойти:
Правило 1 (не прокомментировано ниже и работает как обаяние)
http://example.com/whatever -> /index.php?page=whatever&
http://example.com/whatever/ -> /index.php?page=whatever&
http://example.com/whatever/?test=me -> /index.php?page=whatever&test=me
Правило 2 (закомментировано ниже и не комментируется работать, но должно работать следующим образом)
http://example.com/api/ -> index.php?page=api&func=
http://example.com/api/whateverelse -> index.php?page=api&func=whateverelse
Папка /api/
не существует на сервере, и при чтении документации параметры L
должны предотвратить синтаксический анализ большего количества правил. Тем не менее, если я раскомментирую ^\/api\/(.*)$
, я получу ответ 404.
Цель состоит в том, что если первое правило будет проанализировано, второе правило будет пропущено, и цель состоит в том, чтобы первое правило действительно работало.
Есть ли кто-то, кто мог бы указать мне правильное направление здесь?
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
#RewriteRule ^\/api\/(.*)$ //index.php?page=api&func=$1 [NC,L]
RewriteRule ^\/?([^\/]+)\/?$ //index.php?page=$1&%{QUERY_STRING} [NC,L]
Я попытался отладить его, добавив: LogLevel alert rewrite:trace6
, но это не разрешено в .htaccess
и у меня нет прямого доступа к файлам конфигурации сервера.