Сохранить строку запроса для перезаписи .htaccess

У меня в настоящее время есть простой переписывающий, который перенаправляет

/photos/2 

в

 /photoviewer.php?photo=2 

Однако я должен иметь возможность разрешить пользователю добавлять фотографию в свою корзину, поэтому я думал, что мне нужно сохранить строку запроса, чтобы было выполнено следующее.

 /photos/2?action=purchase 

перенаправляет на:

 /photoviewer.php?photo=2&action=purcahse 

Мое текущее правило htaccess:

 RewriteRule ^photos/([a-zA-Z0-9_-]+)$ photoviewer.php?photo=$1 [L] 

Solutions Collecting From Web of "Сохранить строку запроса для перезаписи .htaccess"

Добавьте флаг [QSA] (добавить строку запроса).

 RewriteRule ^photos/([a-zA-Z0-9_-]+)$ photoviewer.php?photo=$1 [L,QSA] 

В своем правиле замените [L] на [L,QSA] .
Затем будет сохранена информация о запросе.

Надеюсь это поможет!

[QSA,L] вместо того, чтобы просто [L] должен сделать трюк. Надеюсь это поможет!

Как насчет того, чтобы просто расширить идею, чтобы передать «любые» пары имя / значение через URL-адрес сценария photoviewer.php? Это элегантный подход, который я использовал в прошлом.

 RewriteRule ^photos\/([^/\.\-]+)\/([^/\.\-]+)$ /photoviewer\.php\?$1=$2 [L] RewriteRule ^photos\/([^/\.\-]+)\/([^/\.\-]+)\/([^/\.\-]+)\/([^/\.\-]+)$ /photoviewer\.php\?$1=$2&$3=$4 [L] RewriteRule ^photos\/([^/\.\-]+)\/([^/\.\-]+)\/([^/\.\-]+)\/([^/\.\-]+)\/([^/\.\-]+)\/([^/\.\-]+)$ /photoviewer\.php\?$1=$2&$3=$4&$5=$6 [L] 

Итак, что-то вроде:

 photos/photo/2/action/purchase 

переписывает:

 photoviewer.php?photo=2&action=purchase