Сохранить строку запроса при перезаписи .htaccess - PullRequest
2 голосов
/ 10 ноября 2011

В настоящее время у меня есть простое переписывание, которое перенаправляет

/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]

Ответы [ 4 ]

6 голосов
/ 10 ноября 2011

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

RewriteRule ^photos/([a-zA-Z0-9_-]+)$ photoviewer.php?photo=$1 [L,QSA]
2 голосов
/ 10 ноября 2011

В вашем правиле замените [L] на [L,QSA].
. Это позволит сохранить информацию о запросе.

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

1 голос
/ 10 ноября 2011

Как насчет того, чтобы просто распространить идею передачи «любых» пар имя / значение через 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
1 голос
/ 10 ноября 2011

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

...