Apache htaccess中的多个重写规则访问同一文件

Apache htaccess中的多个重写规则访问同一文件,apache,.htaccess,mod-rewrite,Apache,.htaccess,Mod Rewrite,好吧,我是htaccess的新手,我所做的一切都是尝试和错误 我必须为我的网站制作几个登陆页面,并且需要控制htaccess中的URL,以便它们在google中看起来很好 #Landingpages ex. RewriteRule ^colors/ article.php RewriteRule ^sizes/ article.php RewriteRule ^categories/ article.php 因此,当我输入url时,它会转到article.php,在那里我可以使用$\u SER

好吧,我是htaccess的新手,我所做的一切都是尝试和错误

我必须为我的网站制作几个登陆页面,并且需要控制htaccess中的URL,以便它们在google中看起来很好

#Landingpages ex.
RewriteRule ^colors/ article.php
RewriteRule ^sizes/ article.php
RewriteRule ^categories/ article.php
因此,当我输入url时,它会转到article.php,在那里我可以使用
$\u SERVER['REQUEST\u URI']
获取url,并获取“/colors”在我的数据库中进行查找

我要25个这样的

我还想做/colors/green,并将其用作我的db的键,但我不想为下面这样的代码添加重写规则,因为这样我就有太多了

RewriteRule ^colors/green article.php
注意:我还有其他一些我不想去的页面,比如/basket或/profile等

做上述工作的最佳方法是什么

我可以用一条规则来做吗


我可以将单词ex.Colors作为get参数发送到article.php吗?

您可以使用regex alternation和capture group从URI中捕获一个值,该值可以作为
get
参数传递:

RewriteEngine on

RewriteRule ^(colors(?:/green)?|sizes|categories)/ article.php?id=$1 [L,QSA,NC]

很抱歉迟了答复。是的,它似乎工作正常,谢谢你。但是如果我写/colors/green,id参数只包含/colors而不包含/colors/green。但我可以通过另一种方式得到:)我在规则中添加了处理
/colors/green