Я попытался установить этот 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