首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >URL重写将如何与3个Params一起工作?

URL重写将如何与3个Params一起工作?
EN

Stack Overflow用户
提问于 2019-07-03 07:05:23
回答 1查看 38关注 0票数 0

我已经在PHP中构建了一个URL路由FrontController。一切正常,但现在我发现了一个错误,如果我有比2更多的params,它就不能工作,例如:

此URL工作:"www.comelio.com/business-intelligence/anleser/"

但是这个网址不起作用:"www.comelio.com/business-intelligence/data-mining/anleser/"

我的重写规则:

代码语言:javascript
运行
复制
RewriteRule ^([\w-]+)/?([\w-]+)/?([\w-]+)/?([\w-]+)? index.php?lang=$1&rubrik=$2&unterrubrik=$3&seite=$4

这里是我的路由,如果-否则代码:

代码语言:javascript
运行
复制
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"

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-07-03 07:51:55

在这里查看一下htaccess测试仪 (确保在URL字段中添加http )。

在重写条件下,您只能使斜杠是可选的。因此,重写程序将始终将请求url拆分,以匹配4个部分。尝试将您的规则更改为

代码语言:javascript
运行
复制
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=

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56864685

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档