[英]How the URL-Rewrite will work with 3 Params aswell?
我已經在PHP中建立了URL路由FrontController。 一切正常,但現在我發現一個錯誤,如果我有更多參數,則2不起作用,例如:
該URL起作用: "www.comelio.com/business-intelligence/anleser/"
但是此網址不起作用: "www.comelio.com/business-intelligence/data-mining/anleser/"
我的重寫規則:
RewriteRule ^([\w-]+)/?([\w-]+)/?([\w-]+)/?([\w-]+)? index.php?lang=$1&rubrik=$2&unterrubrik=$3&seite=$4
這是我的路由if-else代碼:
if($seite == null) {
$filename = "{$rubrik}.html";
$xdmvalue = $saxonProc->createAtomicValue($filename);
$xsltProc->setParameter("articlePfad", $xdmvalue);
if(in_array($filename, $filelist)) {
$xmlFile = $dir . "/" . $filename;
$xsltProc->setSourceFromFile($xmlFile);
} else {
echo "404";
}
} else if(isset($seite) && isset($rubrik)){
$filename = "{$rubrik}_{$seite}.html";
$xdmvalue = $saxonProc->createAtomicValue($filename);
$xsltProc->setParameter("articlePfad", $xdmvalue);
if(in_array($filename, $filelist)) {
$xmlFile = $dir . "/" . $filename;
$xsltProc->setSourceFromFile($xmlFile);
} else {
echo "404";
}
} else if(isset($seite) && isset($rubrik) && ($unterrubrik)){
$filename = "{$rubrik}_{$unterrubrik}_{$seite}.html";
$xdmvalue = $saxonProc->createAtomicValue($filename);
$xsltProc->setParameter("articlePfad", $xdmvalue);
if(in_array($filename, $filelist)) {
$xmlFile = $dir . "/" . $filename;
$xsltProc->setSourceFromFile($xmlFile);
} else {
echo "404";
}
}
在我編寫此代碼以使第二個參數僅起作用之前,現在只有第三個參數起作用,例如現在起作用: "comelio.com/business-intelligence/data-mining/anleser"
這"comelio.com/business-intelligence/anleser"
: "comelio.com/business-intelligence/anleser"
在此處查看htaccess測試器 (確保在URL字段中添加http)。
在“重寫條件”中,僅使斜線為可選。 因此,重寫器將始終將請求URL拆分為匹配4個部分。 嘗試將規則更改為
RewriteRule ^([\w-]+)/?([\w-]+)?/?([\w-]+)?/?([\w-]+)? index.php?lang=$1&rubrik=$2&unterrubrik=$3&seite=$4
(請注意([\\w-]+)
后面的問號)
這會給你
http://www.comelio.com/index.php?lang=business-intelligence%26rubrik=data-mining%26unterrubrik=anleser%26seite=
和
http://www.comelio.com/index.php?lang=business-intelligence%26rubrik=anleser%26unterrubrik=%26seite=
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.