簡體   English   中英

如何使用PHP更改URL中的子文件夾

[英]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;

在3v4l.org上查看!

如果您知道路徑的結構,則更通用的方法是使用RegEx。

因此,例如,您可以使用以下RegEx:

/stackoverflow\.com\/(.*)\/(.*)/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM