.htaccess 500 Внутренняя ошибка, хотя правила верны - PullRequest
0 голосов
/ 13 апреля 2019

У меня проблемы с .htaccess. Проблема в том, что мой RewriteRule кажется недействительным, хотя я использовал один и тот же точно несколько раз раньше. Правила .htaccess:

RewriteEngine On
RewriteRule api/(.*) api.php?method=$1

Проблема в том, что когда я захожу на свой веб-сайт, меня сразу же обнаруживает ошибка 500 Internal Server. Я попытался отредактировать файл к этому:

Deny from all

#RewriteEngine On
#RewriteRule api/(.*) api.php?method=$1

и я получил permission denied ( Ожидаемое поведение ), так что все должно работать? Я понятия не имею, что не так с моим файлом htaccess. Я пытался сделать следующее:
- Перезапустите apache, используя service apache2 restart
- То, что я сказал выше, попробуйте простое правило, что будет работать , если все правильно, и закомментируйте все остальное
- Написание того же правила в другом файле и замена текста в моем файле .htaccess этим (я где-то читал, что могут быть «невидимые» символы, которые .htaccess сделал не как вообще)

1 Ответ

1 голос
/ 13 апреля 2019

Вам необходимо исключить путь назначения, в который переписывается правило, иначе вы получите бесконечный внутренний цикл перезаписи, поскольку ваш шаблон перезаписи api/(.*) также совпадает с путем /api/api.php.

RewriteCond %{REQUEST_URI} !/api\.php [NC]
RewriteRule api/(.*) api.php?method=$1
...