2011-11-10 182 views
2

我現在有一個簡單的重寫重定向保留在重寫查詢字符串的.htaccess

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

回答

6

追加[QSA]標誌(查詢字符串追加)。

RewriteRule ^photos/([a-zA-Z0-9_-]+)$ photoviewer.php?photo=$1 [L,QSA] 
+0

感謝赫然快速反應!我會接受計時器讓我的時間。 – Max

2

在您的規則,與[L,QSA]更換[L]
然後將保留查詢信息。

希望這會有所幫助!

+0

其中L表示Last,即如果規則匹配,則不要看其他規則。 – stivlo

1

[QSA,L]而不只是[L]應該做的伎倆。希望這可以幫助!

1

只要擴展想法,將URL通過「any」名稱/值對傳遞給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