【问题标题】:htaccess rewrite pass two variables or one depending if both are available?htaccess rewrite 传递两个变量还是一个取决于两者是否可用?
【发布时间】:2015-03-14 01:58:30
【问题描述】:

我想将第一个目录作为变量传递,将子目录作为另一个变量传递。

它适用于具有两个目录 (/something/something2) 的 url,但当我尝试只使用一个 (/something) 时,我收到错误 404。

RewriteRule ([^/]+)/([^/]+) /posts/?category2=$1&category2=$2 [L,QSA]

category2 不可用时如何只传递 category1?

【问题讨论】:

    标签: apache .htaccess mod-rewrite rewrite


    【解决方案1】:

    几个解决方案:

    多个规则(更容易理解但速度有点慢):

    RewriteRule ^([^/]+) /posts/?category2=$1 [L,QSA]
    RewriteRule ^([^/]+)/([^/]+) /posts/?category2=$1&category2=$2 [L,QSA]
    

    单一规则:

    RewriteRule ^([^/]+)(/([^/]+))? /posts/?category2=$1&category2=$3 [L,QSA]
    

    这里 URL 的第二部分 (/something2) 是可选的。请注意 -- $2 已更改为 $3。

    【讨论】:

      【解决方案2】:

      也许试试这个:

      RewriteRule ([^/]+)(/([^/]+))? /posts/?category2=$1&category2=$3 [L,QSA]
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-11-30
        • 1970-01-01
        • 2011-09-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-11-05
        相关资源
        最近更新 更多