Назад | Перейти на главную страницу

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

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