2016-05-18 53 views
5

我想設置一個簡單的htaccess規則,但不工作。
我認爲問題是與?=個字符?簡單的htaccess重寫規則錯誤404

的代碼是:

Options +FollowSymLinks 
ErrorDocument 404 /php/404redirect.php 
RewriteEngine on 
RewriteRule ^productos.php?id=([0-9]+)$ /?view=productos&id=$1 [L,NE,B,QSA] 

這總是給我錯誤404

我要的是從重定向所有請求:
www.example.com/productos.php?id=X

www.example.com/?view=productos&id=X

+0

您使用重寫規則,但你提到,你想讓它重定向,你有什麼真正想要做什麼?以不同的方式重定向或翻譯網址以顯示網址? – PavKR

+0

是的,我認爲重定向更好。我最終想要向用戶展示的內容是:/ productos/id – Tifon

回答

2

RewriteRule ^productos.php /?view=productos [L,NE,B,QSA]

,或者如果你想重定向

RewriteRule ^productos.php /?view=productos [L,NE,B,QSA,R=301]

3

查詢字符串是不是RewriteRule指令中匹配的一部分,可以重定向查詢字符串需要使用的RewriteCond下列選項之一:

選項1

RewriteEngine on 

RewriteCond %{THE_REQUEST} /product\.php\?id=([^&\s] [NC] 
RewriteRule^/?view-product&id=%1? [NC,L,R] 

選項2

RewriteEngine on 

RewriteCond %{QUERY_STRING} ^id=([^&]+)$ [NC] 
RewriteRule ^product\.php$ /?view-product&id=%1? [NC,L,R] 

我們用一個空的問號在目標網址的末尾丟棄舊的查詢字符串,否則這些查詢字符串會默認被添加到目標網址。

更改[RR = 301,如果你想使重定向永久。