我的.htaccess文件中有大约一百个RewriteRule
,例如:
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页面的支持。只需在URL末尾添加.amp
即可显示页面的AMP版本。
我可以再创建100个RewriteRule
来覆盖所有以.amp
结尾的情况,但是我想知道是否有更简单的方法吗?
是否有一种方法可以在检测到.amp时添加单个RewriteRule,该参数会添加一个amp=1
参数,然后回退到现有的重写(而不丢弃amp=1
参数)?
答案 0 :(得分:1)
您可以在现有规则之上尝试类似的方法:
RewriteRule (.+)(\.amp)$ $1?amp=1
然后将QSA
标志添加到您现有的标志中。
请注意,您必须避免在该新规则上使用[L]
标志,这样它才能遍历其余所有规则。