Назад | Перейти на главную страницу

Почему это RewriteRule в httpd не работает?

Я попытался установить этот RewriteCond в httpd 2.4.4:

...
RewriteCond expr "%{QUERY_STRING} =~ /welcome/"
RewriteRule ^(.*)$ %1\.html

Итак, если я приду https://localhost/?welcome , например, я должен увидеть страницу https://localhost/welcome.html.

Вместо этого он возвращает 500 Internal Server Error. Зачем?

Журнал ошибок гласит:

Запрос превысил лимит в 10 внутренних перенаправлений из-за возможной ошибки конфигурации. При необходимости используйте LimitInternalRecursion, чтобы увеличить лимит. Используйте «Отладка LogLevel», чтобы получить обратную трассировку.

Пытаться:

RewriteCond %{QUERY_STRING}  (welcome)
RewriteRule ^.*$ %1.html

Это заменяет% 1 соответствующей группой из RewriteCond. Поскольку вы используете здесь статическую строку, вы можете просто использовать:

RewriteCond %{QUERY_STRING}  welcome
RewriteRule ^.*$ welcome.html