У меня есть htaccess в поддомене с следующее правило:
RewriteEngine On
RewriteBase /
RewriteRule ^feed([0-9]+)$ ../image.php?id=$1 [L]
Итак, в основном я хочу перенаправить запросы из канала, который находится в поддомене, в файл image.php, который находится в основном домене (только один каталог выше). Использование ../
, похоже, не работает как в PHP.
Итак, как я могу перезаписать файл в родительском каталоге?
Судя по всему, вы уже находитесь в корне документа вашего поддомена, который, вероятно, определен на его собственном виртуальном хосте (который, как правило, указывает на подкаталог вне корня документа основного домена).
К сожалению, вы не можете внутренне переписать выше / вне корня документа, используя 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]