У меня в настоящее время есть простой переписывающий, который перенаправляет
/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]
Добавьте флаг [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