2016-05-18 17 views
5

Ich versuche, eine einfache Htaccess-Regel, aber funktioniert nicht.
Ich denke, das Problem ist mit den ? und = Zeichen?Einfache htaccess rewrite Regel Fehler 404

Der Code ist:

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

Diese geben mir immer Fehler 404.

Was ich will, ist alle Anfragen umleiten aus:
www.example.com/productos.php?id=X
zu
www.example.com/?view=productos&id=X

+0

Sie verwenden eine Rewrite-Regel umleiten möchten, aber Sie erwähnen, dass Sie sie umleiten möchten, was Sie wollen, dass es Sie eigentlich zu tun? Umleiten Sie es oder interpretieren Sie eine URL auf eine andere Art und Weise als sie angezeigt wird? – PavKR

+0

Ja, ich denke, eine Weiterleitung ist besser. Was ich dem Benutzer endlich zeigen möchte, ist ein Neuschreiben wie:/productos/id – Tifon

Antwort

2

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

oder wenn Sie

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

3

Abfragezeichen ist nicht Teil der Übereinstimmung in der RewriteRule-Direktive, um Query-Strings umzuleiten, Sie müssen RewriteCond eine der folgenden Optionen verwenden:

Option 1

RewriteEngine on 

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

Option 2

RewriteEngine on 

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

Wir verwenden eine leere Fragezeichen ? am Ende der Ziel-URL, um die alten Abfragezeichenfolgen zu verwerfen, andernfalls werden diese Abfragezeichenfolgen standardmäßig an die Ziel-URL angefügt.

Ändern der R zu R = 301, wenn Sie die Umleitung permanent machen wollen.