Htaccess перезаписать в файл, расположенный на один уровень выше

У меня есть htaccess в поддомене с следующее правило:

RewriteEngine On
RewriteBase /
RewriteRule ^feed([0-9]+)$ ../image.php?id=$1 [L]

Итак, в основном я хочу перенаправить запросы из канала, который находится в поддомене, в файл image.php, который находится в основном домене (только один каталог выше). Использование ../ , похоже, не работает как в PHP.

Итак, как я могу перезаписать файл в родительском каталоге?

2
задан 21 August 2017 в 21:31
1 ответ

Судя по всему, вы уже находитесь в корне документа вашего поддомена, который, вероятно, определен на его собственном виртуальном хосте (который, как правило, указывает на подкаталог вне корня документа основного домена).

К сожалению, вы не можете внутренне переписать выше / вне корня документа, используя mod_rewrite в .htaccess . В .htaccess подстановка RewriteRule принимает только URL-путь, а не путь файловой системы. Однако вы можете сделать это, если используете mod_rewrite непосредственно в конфигурации сервера. В конфигурации сервера вы можете указать путь файловой системы в качестве подстановки (вам нужно будет явно указать полный путь, вы не можете использовать относительный путь, например ../ image.php ).

В качестве альтернативы, в .htaccess вы можете проксировать запрос от вашего поддомена к основному домену, используя mod_proxy с mod_rewrite. Однако для этого может потребоваться некоторая настройка сервера. Например:

RewriteRule ^feed([0-9]+)$ http://maindomain.com/image.php?id=$1 [P]
2
ответ дан 3 December 2019 в 11:27

Теги

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