我需要帮助才能使用php而不是htaccess文件将请求的子文件夹URL更改为其他文件。
从 stackoverflow.com/的 folder1中 /问
要 stackoverflow.com/的文件夹2 /问
可能吗?
更新
我正在研究基于geoip mod和bot检测功能的IP重定向。
3个Magento网站(单个域名)和每个网站的两个商店视图。
switch (true)
{ case (bot_detected($bot) === FALSE && $country == "us"):
$mageRunCode = isset($_SERVER['MAGE_RUN_CODE']) ? $_SERVER['MAGE_RUN_CODE'] : 'us';
break;
case (bot_detected($bot) === FALSE && $country == "uk"):
$mageRunCode = isset($_SERVER['MAGE_RUN_CODE']) ? $_SERVER['MAGE_RUN_CODE'] : 'uk';
break;
default:
$mageRunType = isset($_SERVER['MAGE_RUN_TYPE']) ? $_SERVER['MAGE_RUN_TYPE'] : 'store';
}
它工作正常,但如果美国访问者点击英国商店重定向的网址未应用。所以我需要强制URL重定向到美国,并且与任何商店条件相同。
答案 0 :(得分:0)
您需要使用pathinfo
功能。这样的事情有效:
<?php
$url = 'http://stackoverflow.com/folder1/ask';
$pathinfo = pathinfo($url);
//$pathinfo['dirname'] contains the full prefix of the URL
//here, http://stackoverflow.com/folder1
//So simply replace folder1 by folder2 in that string
$newPrefix = str_replace('folder1', 'folder2', $pathinfo['dirname']);
//Use that new prefix and append the same basename ('ask')
$newUrl = $newPrefix . '/' . $pathinfo['basename'];
echo $newUrl;
答案 1 :(得分:0)
如果您了解路径的结构,则更常用的方法是使用RegEx。
例如,您可以使用以下RegEx:
/stackoverflow\.com\/(.*)\/(.*)/