2017-01-27 61 views
0

我在根目錄下的文件名爲propertyid.phphtaccess的 - 重寫一個規則到另一個規則(虛擬文件夾)

我有一個RerwiteRule該工程確定: RewriteRule for-sale/(.*) propertyid.php?pid=$1

用戶輸入這個網址和相同的URL顯示在地址欄 domain.com/for-sale/(pid)

我想第二個規則,將允許用戶輸入這個網址 domain.com/sell/(pid)

但我希望第一個URL在地址欄中 domain.com/for-sale/(pid)

我已經嘗試的多種變化顯示以下

RewriteRule ^sell$ /for-sale/propertyid.php?pid=$1 
RewriteRule sell/(.*) for-sale?pid=$1 
+0

@ thickguru - 顯然,我在以前的問題措辭做了一個糟糕的工作。感謝您編輯我的問題。我注意到您刪除了我之前查找答案的評論,並且似乎您突出顯示了代碼元素。我將在未來努力追隨你的領先地位。如果您還有其他事情可以指出在未來的問題中做/不做,我會歡迎您的反饋意見。 – ColinK

回答

1

您需要/sell/(.*)重定向到/for-sale/(.*)。您的重定向規則/for-sale/(.*)propertyid.php?pid=$1將負責其餘部分。 只是檢查幾件事情:

  1. /sell/(.*)/for-sale/(.*)規則應該來上述 /for-sale/(.*)propertyid.php?pid=$1重定向規則,應該 返回301 HTTP代碼永久移動。

  2. 檢查多個重定向。

你的.htaccess應該是這樣的:

RewriteEngine On 

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^sell(.*)$ http://%{HTTP_HOST}/for-sale$1 [L,R=301] 

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^for-sale/(.*)$ propertyid.php?pid=$1 [L] 
+0

感謝您的迅速和完美的迴應。我試圖投票,但我的分數低於15(事實證明我以前的問題措辭不佳)。也許別人可以把這個答案投給。 – ColinK