apache - Apache2 结合 RewriteRules
问题描述
我的 .htaccess 中有大约一百个RewriteRule
s,例如以下几个:
RewriteRule ^cars-and-([%a-zA-Z0-9_-]+)/$ https://example.com/cars-and-$1 [R=301,L]
RewriteRule ^cars-and-([%a-zA-Z0-9_-]+)/0[/]{0,1}$ https://example.com/cars-and-$1 [R=301,L]
RewriteRule ^cars-and-([%a-zA-Z0-9_-]+)/([0-9]+)$ /pathto/search.php?city=$1&page=$2 [L]
RewriteRule ^cars-and-([%a-zA-Z0-9_-]+)$ /pathto/search.php?city=$1&page=0 [L]
我现在想添加对 AMP 页面的支持。只需.amp
在 URL 中添加一个结尾即可显示该页面的 AMP 版本。
我可以创建 100 个额外RewriteRule
的 s 来涵盖所有这些情况.amp
,但我想知道是否有更简单的方法可以继续?
amp=1
当检测到 .amp 时添加一个参数然后回退到现有的重写(不删除参数)时,有没有办法添加一个 RewriteRule amp=1
?
解决方案
您可以在现有规则之上尝试类似的方法:
RewriteRule (.+)(\.amp)$ $1?amp=1
然后将QSA
标志添加到您现有的标志中。
请注意,您必须避免该[L]
新规则上的标志,以便它通过其余规则。