Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.htaccess 用3个get请求重写URL_.htaccess_Url Rewriting - Fatal编程技术网

.htaccess 用3个get请求重写URL

.htaccess 用3个get请求重写URL,.htaccess,url-rewriting,.htaccess,Url Rewriting,我在做一个项目,一直在重写。我尽力没有找到答案,希望能在这里得到解决 我通过一个“category.php”页面创建动态类别。我想创建3种类型的类别,如下所示 mysite.com/maincegory.html(这是主要类别,共有22个) mysite.com/maincegory/firstsubcategory.html(大约700-800个子类别) mysite.com/maincegory/firstsubcategory/secondcategory.html(大约700-800个

我在做一个项目,一直在重写。我尽力没有找到答案,希望能在这里得到解决

  • 我通过一个“category.php”页面创建动态类别。我想创建3种类型的类别,如下所示

    • mysite.com/maincegory.html
      (这是主要类别,共有22个)

    • mysite.com/maincegory/firstsubcategory.html
      (大约700-800个子类别)

    • mysite.com/maincegory/firstsubcategory/secondcategory.html
      (大约700-800个子类别)

  • 我创建了一个“category.php”页面,它接收
    $\u GET['main']
    $\u GET['firstsub']
    $\u GET['second sub']
    ,并在
    中使用了以下代码

    Options +FollowSymLinks
    RewriteEngine On
    RewriteRule (.*).html category.php?main=$1
    
  • 我尝试了
    mysite.com/categoryname.html
    ,但没有成功。我已经成功地将上述代码用于我的另一个项目,并且工作得很好。但是这是我第一次使用
    3$\u GET['main']
    我不知道它是如何工作的


  • 请帮我解决我的问题

    对于。。。让我查一下。。。是的,第十次:

    请尝试使用
    RewriteLog
    指令:它可以帮助您跟踪此类问题:

    # Trace:
    # (!) file gets big quickly, remove in prod environments:
    RewriteLog "/web/logs/mywebsite.rewrite.log"
    RewriteLogLevel 9
    RewriteEngine On
    
    现在解决方案是:

    Options +FollowSymLinks
    RewriteEngine On
    RewriteRule download-game/(.*)\.html$ category.php?main=$1 [QSA,L]
    RewriteRule ([^/]*)/([^/]*)/([^/]*)\.html category.php?main=$1&firstsub=$2&secondsub=$3 [QSA,L]
    RewriteRule ([^/]*)/([^/]*)\.html category.php?main=$1&firstsub=$2 [QSA,L]
    RewriteRule ([^/]*)\.html category.php?main=$1 [QSA,L]
    

    请告诉我它是否有效。

    如果我理解正确,您希望捕获A的类别,B的类别和第一个子类别,C的类别、第一个子类别和第二个子类别。 下面的解决方案是可行的

    Options +FollowSymLinks
    RewriteEngine On
    RewriteBase /
    RewriteRule ^([^/]*)/?([^/]*)/?([^/]*)\.html$ category.php?main=$1&firstsub=$2&secondsub=$3 [L]
    
    编辑:
    上面的简化代码

    你好,奥利维尔·庞斯,首先非常感谢你的回复。第二,我在这里使用RewriteRule“(.*.html category.php?main=$1”发布im时犯了一个错误,我发布了RewriteRule“download game/(.*.html category.php?main=$1”。正如我已经告诉你的,我正在努力,所以我在车站犯了一个错误。对不起。另一个好消息是,我刚才对主要类别的URLRewite不知怎的起了作用。所以请允许我为另外两个做些什么。感谢我在我的代码中所做的更正,“RewriteRule(.*).html category.php?main=$1”对mysitename/categoryname.htmlYes-Ulrich Palha来说效果很好,这就是我想要做的。谢谢你的回答。你重写的代码对我来说很难理解。我希望它能完美地工作。我会尽力让你知道的。谢谢。我修改了它使它稍微简单一点。让我知道它是否有效。第一个类别与您的代码完美配合,但第二个和第三个类别不起作用。我测试了我的代码,它的工作方式是这样的“sitename/category.php?main=categoryname&firstsub=subcategory”,但是当我使用sitename/categoryname/subcategory.html时,它会给出404未发现错误Hi Ulrich Palha,您的解决方案在Linux服务器上运行得非常好,您能为我推荐在windows服务器上同样的解决方案吗?Thaks为您解答。如果您使用的是Apache,它在windows上也应该同样适用。如果没有,你能提供更多关于什么不起作用的细节吗。