2012-02-02 33 views
1

我很努力在網站上實施網址更改。首先,我只想在子目錄級別實現此URL更改。我已將WordPress安裝在根目錄下,但我正在創建自定義分類部分。這位於目錄/ classifieds /中。結果我只想重寫這個子目錄中的URL。無法傳遞重寫網址的查詢字符串值

我已經設法得到正確的重寫工作正常的分類子目錄301所需的執行和追加斜槓添加搜索引擎優化。我唯一的問題是我的頁面沒有傳遞查詢字符串值。我如何修改下面的.htaccess代碼,以便在頁面之間傳遞查詢字符串?

IndexIgnore * 

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^([^/]+)/$ $1.php 
RewriteRule ^([^/]+)/([^/]+)/$ /$1/$2.php 

RewriteCond %{THE_REQUEST} ^[A-Z]+\ /([^/]+/)*[^.]+\.php(\?[^\ ]*)?\ HTTP/ 
RewriteRule ^(([^/]+/)*[^.]+)\.php$ http://www.mysite.com/classifieds/$1 [R=301,L] 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_URI} !(\.[a-zA-Z0-9]{1,5}|/)$ 
RewriteRule (.*)$ http://www.mysite.com/classifieds/$1/ [R=301,L] 

redirect 301 /classifieds/index/ http://www.mysite.com/classifieds/ 

在此先感謝您的幫助!

+0

你能否提供一個不傳遞查詢字符串的URL的例子 – 2012-02-02 14:01:04

回答

0

您需要添加[QSA]查詢字符串附加

EDIT

重寫規則^(([^ /] + /)* [^。] +)。PHP $ http://www.mysite.com/classifieds/ $ 1 [R = 301 ,L,QSA]

重寫規則(。*)$ http://www.mysite.com/classifieds/ $ 1/[R = 301,L,QSA]

+0

我非常多初學者,你能否告訴我代碼中的哪一行需要[QSQ]加入... – Chris 2012-02-02 13:10:55

+0

@Chris查看更新回答 – ianbarker 2012-02-02 13:17:20

+0

I已經嘗試了您的建議,但我仍然遇到困難。添加了[QSA]後,我得到以下URL輸出:http://www.mysite.com/classifieds/view-ad/?user = 0001 – Chris 2012-02-02 14:18:22

0

如果我正確理解這一點,你希望查詢字符串通過多個頁面持久化,對吧?如果是這樣,我知道這樣做的唯一方法是輸出頁面上的所有鏈接並附加查詢字符串,這意味着這將在您的PHP文件中完成。

要做到這一點,你應該輸出鏈接應附加到URL的末尾urlencode($_GET)