htaccess 中的多个 RewriteRules 到同一文件

问题描述

好吧,我真的是 htaccess 的新手,我所做的一切都是反复试验。

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

#Landingpages ex.
RewriteRule ^colors/ article.PHP
RewriteRule ^sizes/ article.PHP
RewriteRule ^categories/ article.PHP

因此,当我输入网址 www.domain.com/colors 时,它会转到 article.PHP,在那里我可以使用 $_SERVER['REQUEST_URI'] 获取网址并获取“/colors”以在我的数据库中进行查找

我会适当地拥有其中的 25 个。

我也想做 /colors/green 并将其用作我的数据库的键,但我不想为它添加如下的 RewriteRule,因为那样我会有很多

RewriteRule ^colors/green article.PHP

注意:我还有其他页面不想进入 article.PHP,例如 /basket 或 /profile 等。

执行上述操作的最佳方法是什么?

我可以在一个 RewriteRule 中实现吗?

我可以发送ex这个词吗?颜色作为 article.PHP获取参数?

解决方法

您可以使用正则表达式交替和捕获组从可以作为 GET 参数传递的 URI 中捕获值:

RewriteEngine on

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