#apache #mod-rewrite
#apache #мод-перезапись
Вопрос:
В моем .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=$1amp;page=$2 [L]
RewriteRule ^cars-and-([%a-zA-Z0-9_-] )$ /pathto/search.php?city=$1amp;page=0 [L]
Теперь я хочу добавить поддержку страниц AMP. Простое добавление .amp
конца к URL должно отображать версию страницы AMP.
Я мог бы создать 100 дополнительных RewriteRule
файлов, чтобы охватить все эти случаи с .amp
окончанием, но мне интересно, есть ли более простой способ продолжить?
Есть ли способ добавить один RewriteRule при обнаружении .amp, который добавляет amp=1
параметр, а затем возвращается к существующим перезаписям (без удаления amp=1
параметра)?
Ответ №1:
Вы могли бы попробовать что-то подобное поверх ваших существующих правил:
RewriteRule (. )(.amp)$ $1?amp=1
Затем добавьте QSA
флаг к существующим.
Обратите внимание, что вы должны избегать [L]
флага в этом новом правиле, чтобы оно проходило через остальные из них.