在重写.htaccess中保留查询string

我目前有一个简单的重写,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