У меня есть встроенный контроллер URL-маршрутизации в PHP.Все работает нормально, но теперь я нахожу ошибку, если у меня больше параметров, чем 2, она не работает, например:
Этот URL работает: "www.comelio.com/business-intelligence/anleser/"
, но этот URL не работает:"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"