Справочная документация сервера Apache:
Apache 2.2 был выпущен в 2005 году - 10 лет назад.
https://en.wikipedia.org/wiki/Apache_HTTP_Server
Apache 2.2 R Flag Код статуса ответа HTTP Справочная информация:
https://httpd.apache.org/docs/2.2/rewrite/flags.html#flag_r
Любой действительный код статуса ответа HTTP может быть указан с использованием синтаксиса
[R = 305], с кодом состояния 302, используемым по умолчанию, если нет
указано. Указанный код состояния не обязательно должен быть
код состояния перенаправления (3xx). Однако, если код состояния находится за пределами
диапазон перенаправления (300-399), затем строка замещения удаляется
полностью, и перезапись прекращается, как если бы использовались буквы L.
Apache 2.4 R Флаг HTTP код ответа Справочная информация:
https://httpd.apache.org/docs/2.4/rewrite/flags.html#flag_r
Любой действительный код статуса ответа HTTP может быть указан с использованием синтаксиса
[R = 305], с кодом состояния 302, используемым по умолчанию, если нет
указано. Указанный код состояния не обязательно должен быть
код состояния перенаправления (3xx). Однако, если код состояния находится за пределами
диапазон перенаправления (300-399), затем строка замещения удаляется
полностью, и перезапись прекращается, как если бы использовались буквы L.
Дополнительная информация:
"Цель (или строка подстановки) в RewriteRule считается
путь к файлу по умолчанию. "
"- (тире)
Тире указывает на то, что подстановка не должна выполняться (существующий путь пропущен через нетронутым). Это используется, когда необходимо применить флаг (см. Ниже) без изменения пути. "
В простом английском языке строка подстановки - это путь http URI, где вы также переписываете или перенаправляете. Это означает, что при использовании диапазона перенаправления 4xx, такого как R = 405, целевой путь URI будет игнорироваться / не разрешаться / не использоваться, если он присутствует в RewriteRule.
Этот RewriteRule действителен и работает в большинстве случаев / для большинства серверов / конфигурации сервера, но может работать не в каждом отдельном случае, так что если вам нужно что-то, что работает в 100% всех конфигураций сервера, то вы бы потеряли этот код и не использовать R = 405. В живом тестировании R = 405 работает в 99,99% всех случаев на хостах по всему миру.
RewriteCond %{REQUEST_METHOD} ^(HEAD) [NC]
RewriteRule ^(.*)$ - [R=405,L]
Код не указан:
RewriteCond %{REQUEST_METHOD} ^(HEAD) [NC]
RewriteRule ^(.*)$ /path-to-405-error-logging-file/405.php [L]