У меня есть установка Drupal 6, которая запускает веб-сервисы. Поэтому, если кто-то заходит на www.example.com/services/json?method=views.get&view_name="test ", он получает правильный закодированный ответ.
Я выполняю некоторые работы по его обслуживанию, поэтому я создал поддомен и скопировал на него все, и я хочу перенаправить все запросы на поддомен, пока ведется работа над основным. Поэтому, когда приходит запрос, он должен перейти на old.example.com/services/json?method=views.get и т. Д.
Я пробовал несколько способов, но ничего не работает. Просто сходит с ума, говоря, что у меня слишком много перенаправлений, а затем страница не загружается.
Несколько вещей, которые я пробовал:
RedirectMatch 301 /services/json(.*)$ http://old.example.com/services/json$1
Или
RedirectMatch 301 ^/services/json(.*)$ http://old.example.com/services/json$1
Вот как выглядит структура папок.
public_html - верхняя папка со следующим внутри:
-основные файлы сайта drupal с файлом .htaccess, который я редактирую
-old (это папка, содержащая файлы поддоменов, копия основного сайта, за исключением некоторого содержимого его файла .htaccess)
Я подозреваю, что структура может иметь к этому какое-то отношение, но я понятия не имею.
РЕДАКТИРОВАТЬ: Подробнее о правилах перенаправления в файлах .htaccess.
Основная главная папка домена:
RewriteCond %{HTTP_HOST} ^example\.com$ [NC]
RewriteRule ^(.*)$ http://www.example.com/$1 [L,R=301]
RedirectMatch 301 ^/services/json(.*)$ http://old.example.com/services/json$1
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !=/favicon.ico
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]
В папке поддоменов (во время тестирования я удалил большинство других правил):
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !=/favicon.ico
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]
Любая помощь приветствуется. Спасибо!