Apache VirtualHosts — исключить несколько файлов и папку из перенаправления домена

Используя этот код:

RedirectMatch 301 ^((?!.*?excluded_file\.php).*)$ http://newdomain.com$1

... В настоящее время я перенаправляю все запросы к моему серверу Apache с olddomain.com на newdomain.com, за исключением одного файла с именем exclude_file.php. Но на самом деле мне нужно исключить ВСЕ запрошенные файлы, начинающиеся с «excluded_» (excluded_1.php, exclude_2.php, exclude_3.php), а также любые запросы к файлам в папке «olddomainfiles». Итак, конечный результат:

Будет перенаправлено на newdomain.com/whatevertherequestwasfor:

http://olddomain.com/somerandomfile.php
http://olddomain.com/otherfolders/whateverfile.php
http://olddomain.com/nice_URL_without_file_extension_or_slash

НЕ будет перенаправлять:

http://olddomain.com/olddomainfiles/anyfile.php
http://olddomain.com/exclude_1.php
http://olddomain.com/exclude_2.php
http://olddomain.com/exclude_3.php

Зачем мне это нужно: я только что отправил свое приложение в Apple и в последнюю минуту решил, что мне нужно изменить доменное имя, что нарушает одну функцию приложения, потому что оно явно полагается на просмотр старого доменного имени — это не так. видеть его больше из-за изменений, внесенных в мой файл виртуальных хостов. Я писал об этой проблеме пару дней назад, но я ошибся в том, что мне нужно...


person tylerl    schedule 09.01.2014    source источник


Ответы (1)


Разве это не сработает?

RedirectMatch 301 ^((?!.*?(excluded.*\.php|olddomainfiles)).*)$ http://newdomain.com$1

Просто нужно было изменить отрицательный взгляд вперед (который раньше искал excluded_file\.php), чтобы он был вариантом либо excluded.*\.php, либо olddomainfiles.

person Jon Lin    schedule 09.01.2014
comment
Идеальный! Добавил подчеркивание к excluded.*\.php и все отлично работает! Спасибо! - person tylerl; 09.01.2014