[英]How to Change subfolder in url using php
請我需要幫助,以使用php而不是htaccess文件將請求的子文件夾URL更改為其他。
從stackoverflow.com/ folder1 / ask
到stackoverflow.com/ folder2 / ask
那可能嗎?
更新:
我正在基於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,則不會應用。 因此,我需要強制將URL重定向到美國,並且與任何商店條件相同。
您需要使用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;
如果您知道路徑的結構,則更通用的方法是使用RegEx。
因此,例如,您可以使用以下RegEx:
/stackoverflow\.com\/(.*)\/(.*)/
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.