htaccess的重写通两个变量或者一个取决于如果两者都可用? [英] htaccess rewrite pass two variables or one depending if both are available?

查看:94
本文介绍了htaccess的重写通两个变量或者一个取决于如果两者都可用?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

I want to pass first directory as a variable and subdirectory as another variable.

它的工作原理时,与这两个目录的URL(/事/ something2),但我得到一个错误404当我尝试只有一个(/某事)。

It works when for urls with both directories (/something/something2) but I get an error 404 when I try with only one (/something).

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

如何传递只有类别1类别2时不可用?

How can I pass only category1 when category2 isn't available?

推荐答案

几个解决方案:

多个规则(比较容易理解,但有点慢):

Multiple rules (easier to understand but a bit slower):

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

单一的规则:

Single rule:

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

下面的URL(/ something2)的第二部分是可选的。请注意 - $ 2改成$ 3

Here the second part of URL (/something2) is optional. Please note -- $2 was changed to $3.

这篇关于htaccess的重写通两个变量或者一个取决于如果两者都可用?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆