Как я могу перенаправить файл в другой файл в другой папке, которая является физической папкой другого домена надстройки?
Вот что у меня есть на моем сервере (установлено cPanel):
addon_domain_1.com ---> public_html/folder_1
addon_domain_2.com ---> public_html/folder_2
Когда есть запрос на файл source.php в addon_domain_1.com, я бы хотел перенаправить его на target.php в folder_2 (не folder_1).Так это выглядит так:
http://www.addon_domain_1.com/blah/source.php ---> folder_2/target.php
В моем файле public_html / .htaccess у меня есть следующее:
Options +FollowSymlinks All -Indexes
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www\.addon_domain_1\.com$ [NC]
RewriteRule /source\.php$ folder_2/target\.php [L]
Но это выдает ошибку 404:
Not Found
The requested URL /home/username/public_html/folder_2/target.php was not found on this server.
На самом деле файл target.php существует в folder_2 и доступен через браузер.
Странно то, что когда я копирую target.php в folder_1 и меняю свое правило, чтобы оно указывало на него, работает нормально!
RewriteRule /source\.php$ folder_1/target\.php [L]
Итак, похоже, ошибка возникает только в том случае, если я перенаправлю ее в файл в папке, являющейся источником другого домена надстройки.
Как я могу обойти это ??
Обратите внимание, что я не могу использовать внешнее перенаправление, потому что оно потеряло бы исходные переменные среды, такие как REQUEST_URI и REMOTE_ADDR, которые нужны моему сценарию.
Другими словами, следующее правило не будет работать для меня:
RewriteRule /source\.php$ http://www\.addon_domain_2.com/target\.php [P,L]
Я знаю, что вы также можете "прикрепить" переменные окружения в строке запроса, но я бы не сталиспользуйте этот метод, и пусть мой PHP-скрипт его обрабатывает.
Спасибо.