htaccess mod_rewrite ссылающийся к каталогам полного пути

Действительно ли возможно сослаться на полный каталог / каталог полного пути, такой как /usr/home/public_html/x в .htaccess mod_rewrite?

Я рассмотрел самое очевидное дело помещения следующего в .htaccess субдомена (сохраненный в папке в public_html), надеясь, что это отобразилось бы (не, перенаправляют!) на файл, как указано абсолютным каталогом:

RewriteEngine on
RewriteRule /xochotl /usr/home/public_html/x.php

Это не работает... Я получаю 500 Внутренних Ошибок Сервера

.htaccess в основном public_html каталоге просто имеет следующее, и он работает с относительными каталогами...

RewritEngine on
RewriteRule /xochotl x.php
1
задан MrWhite 19 January 2019 в 19:32
поделиться

1 ответ

Невозможно отобразить путь к файлу при использовании mod_rewrite в контексте каталога (то есть при использовании .htaccess ). Однако вы должны иметь возможность отображать абсолютный путь, когда размещаете свои правила в контексте каждого сервера ( httpd.conf , либо в конфигурации главного сервера, либо в конфигурации виртуального сервера).

Причина в том, что mod_rewrite работает в контексте каталога. mod_rewrite преобразует URL-адрес, а затем назначает себя обработчиком запроса. Это позволяет ему отправлять внутреннее перенаправление через Apache, что в противном случае было бы невозможно на таком позднем этапе обработки.

Внутреннее перенаправление выполняется путем вызова функции API Apache ap_internal_redirect , которая ожидает URI, который затем переназначается в файловую систему. В качестве побочного примечания, это также является причиной того, почему % {REQUEST_URI} и % {REQUEST_FILENAME} изменяются, когда вы выполняете перенаправление, которое включает тот же .htaccess файл читается для последующего запроса (например, каждый раз, когда .htaccess находится в корне сайта).

2
ответ дан 2 September 2019 в 22:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: