У меня есть 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]