Apache htaccess重写传递两个变量还是一个变量,取决于两者是否都可用?

Apache htaccess重写传递两个变量还是一个变量,取决于两者是否都可用?,apache,.htaccess,mod-rewrite,rewrite,Apache,.htaccess,Mod Rewrite,Rewrite,我想将第一个目录作为变量传递,子目录作为另一个变量传递 当URL同时包含两个目录(/something/something2)时,它可以工作,但是当我只尝试一个目录(/something)时,我得到一个错误404 当category2不可用时,如何仅传递category1?也许可以尝试以下方法: RewriteRule ([^/]+)(/([^/]+))? /posts/?category2=$1&category2=$3 [L,QSA] 几种解决方案: 多个规则(更容易理解,但速度稍

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

当URL同时包含两个目录(/something/something2)时,它可以工作,但是当我只尝试一个目录(/something)时,我得到一个错误404

当category2不可用时,如何仅传递category1?

也许可以尝试以下方法:

RewriteRule ([^/]+)(/([^/]+))? /posts/?category2=$1&category2=$3 [L,QSA]
几种解决方案:

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

单一规则:

RewriteRule ^([^/]+)(/([^/]+))? /posts/?category2=$1&category2=$3 [L,QSA]
这里URL的第二部分(/something2)是可选的。请注意--$2已更改为$3

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