У меня есть Joomla! сайт, где несколько доменов используются для одного экземпляра Joomla. Корневой домен для сайта - www.pky.com. При посещении любого другого имени домена в списке имен, которые мы приобрели, они направлены в корневой домен, но я использую PHP-скрипт для перенаправления на соответствующее доменное имя для «сайта», просматриваемого путем тестирования URI. Некоторые из URL-адресов, используемых для сайта являются exampleone.pky.com, exampletwo.pky.com и т.д.Использование регулярного выражения для проверки всех возможных букв, цифр или символов для перенаправления URL
Наш редирект скрипт в файле index.php для сайта устанавливается следующим образом:
<?php
$domain = $_SERVER["HTTP_HOST"];
$requri = $_SERVER['REQUEST_URI'];
if ((($domain == "pky.com") || ($domain == "www.pky.com") || ($domain == "citywestplace.pky.com") || ($domain == "www.citywestplace.pky.com") || ($domain == "gwplazahouston.com") || ($domain == "www.gwplazahouston.com") || ($domain == "greenwayplaza.pky.com") || ($domain == "www.greenwayplaza.pky.com") || ($domain == "postoakhouston.com") || ($domain == "www.postoakhouston.com") || ($domain == "postoakcentral.pky.com") || ($domain == "www.postoakcentral.pky.com") || ($domain == "sanfelipeplaza.com") || ($domain == "www.sanfelipeplaza.com") || ($domain == "sanfelipeplaza.pky.com") || ($domain == "www.sanfelipeplaza.pky.com")) && ($requri == "/index.php/citywestplace-marketing")) {
header("Status: 301 Moved Permanently");
header("Location: http://www.citywesthouston.com$requri");
}
Одна из наших главных проблем заключается в том, что кто-то, входящий в foo.pky.com, по-прежнему будет отображаться на сайте, который, в свою очередь, нарушает сценарий. Есть ли способ установить переменную в регулярное выражение, которое соответствует всем возможным вариантам букв, чисел и других символов, затем использовать эту переменную как часть URL-адреса, чтобы она также перенаправлялась в корневой домен?
Например:
$myvar = some regex here;
if (($domain == "pky.com") || ($domain == "www.pky.com") || ($domain == $myvar . ".pky.com") || ($domain == "www" . $myvar . ".pky.com"))...
Там должен быть лучший способ сделать все это, но я все еще учусь.
Заранее спасибо.
EDIT
Так я добавил:
if (((preg_match(`.*\.pky\.com`, $domain)) || (preg_match(`www\..*\.pky\.com`, $domain))) && ($menutype == "mainmenu")) {
header("Status: 301 Moved Permanently");
header("Location: http://www.pky.com");
}
, чтобы проверить, если что-то добавляется перед pky.com & & текущий тип меню является "MainMenu". Я проверил регулярное выражение, которое Азиз упомянул; однако, ввод:
foo.pky.com по-прежнему отправляется на url foo.pky.com и не перенаправляется на pky.com.
Regex '. * \ .pky \ .com' должно это сделать –