我目前有一个简单的重写,redirect
/photos/2
至
/photoviewer.php?photo=2
不过,我需要能够让用户添加一张照片到他们的购物车,所以我想我需要保留查询string,以便下面的工作。
/photos/2?action=purchase
redirect到:
/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]
应该做的伎俩。 希望这可以帮助!
如何扩展想法,通过“任何”名称/值通过网址到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