我目前有一个重定向的简单重写
/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]
答案 0 :(得分:6)
附加[QSA]
标志(追加查询字符串)。
RewriteRule ^photos/([a-zA-Z0-9_-]+)$ photoviewer.php?photo=$1 [L,QSA]
答案 1 :(得分:2)
在您的规则中,将[L]
替换为[L,QSA]
然后,这将保留查询信息。
希望这有帮助!
答案 2 :(得分:1)
[QSA,L]
而不仅仅是[L]
应该做的伎俩。希望这有帮助!
答案 3 :(得分:1)
如何扩展想法以通过“photoviewer.php”脚本的URL传递“任何”名称/值对?这是我过去使用的优雅方法。
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