2016-08-09 146 views
0

我面臨着在htaccess文件中重寫規則的問題。請幫忙。htaccess重寫規則不起作用

這是我目前htaccess文件

<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteBase /product-project/ 
RewriteRule . index.php [L] 
</IfModule> 

現在我想創建一個重寫規則,如「產品/分類/ ID」應該重定向到「產品/會員資料?PROFILE_ID = ID」。爲此,我已經使用了

RewriteRule ^product/.*/(.*)$ product/profile?profile_id=$1 [L,R] 

它在某種程度上工作正常。

第一個問題 - >它重定向正確,但URL也改變。如果我使用id爲10,它應該保持爲「product/category/10」。但是當我使用它時,它正確地重定向,但URL更改爲「product/profile?profile_id = 10」。我讀了某處使用[L,P]而不是[L,R],但是它給出了服務器錯誤。

第二個問題 - >現在我想創建一個新的重寫規則,比如「product/id」也應該重定向到「product/profile?profile_id = id」。爲此,我已經使用

RewriteRule ^product/(.*)$ product/profile?profile_id=$1 [L,R] 

現在,這是行不通的&顯示服務器錯誤

第三問題 - >我還可以創建一個新的重寫規則,如「/ ID」也應該重定向到「產品/個人資料?PROFILE_ID = ID」。這可能嗎 ?

第四個問題 - >我也可以創建一個新的重寫規則,例如「/ id1/id2」,也應該重定向到「product/profile?profile_id = id1 & serial_id = id2」。這可能嗎 ?

提前感謝您的時間。

回答

1

這就是你想要請檢查。

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME}.php -f 
RewriteRule ^([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)$ $1/$2?profile_id=$3 

兩個ID的

RewriteRule ^([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)$ $1/$2?profile_id=$3&id=$4 
1

使用它..

Options All -Indexes 
RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ index.php/$1 [L] 
+0

不working..When我輸入localhost /產品項目/產品/ 10 - >應重定向到localhost /產品項目/產品/ profile中PROFILE_ID = 10。 &當我輸入localhost/product-project/10 - >它也應該重定向到本地主機/產品項目/產品/配置文件?profile_id = 10 –