我有一个Joomla!站点设置了一个Joomla实例使用多个域的情况。该网站的根域是www.pky.com。当访问我们购买的名称列表中的任何其他域名时,它们被定向到根域,但我正在使用php脚本通过测试URI来重定向到正在查看的“站点”的相应域名。一些用于网站的网址是否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"))...
必须有一个更好的方式来做到这一切,但我仍然在学习。
预先感谢您。
编辑
所以我说:
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。
正则表达式'。* \。pky \ .com'应该这样做 –