2016-11-24 11 views
2

Ich Modifizieren der Apache .htaccess Datei für die URL-Rewrite-Produkte, so kann ich von diesemmod_rewrite Problem mit GET-Parameter

domain.com/section/products/product.php?url=some-product-name 

dieser

domain.com/section/products/some-product-name 

gehen Hier ist der mod_rewrite Code, den ich Verwende:

Options -Indexes 
Options +FollowSymlinks 
Options -MultiViews 
RewriteEngine on 
RewriteBase/

RewriteRule ^section/products/(.*)$ /section/products/product.php?url=$1 [QSA,L] 

Es gibt nur einen 500 Server Fehler zurück.

Was könnte das Problem sein?

Antwort

1

Dies liegt daran, dass Ihre Rewrite-Regeln endlos wiederholt werden. Das ist aufgrund der Tatsache section/products/(.*) Muster entspricht ursprünglichen und neu geschriebenen URI.

Sie können dies, es zu beheben verwenden:

Options +FollowSymlinks -Indexes -MultiViews 
Options -MultiViews 
RewriteEngine on 
RewriteBase/

RewriteRule ^(section/products)/([\w-]+)$ $1/product.php?url=$2 [QSA,L,NC] 
+0

Das Genie ist. Vielen Dank. Ich brauche Hilfe mit anderen 'mod_rewrite'-Dingen, und ich kann keine weitere Frage in 90 Minuten stellen, kann ich hier in den Kommentaren um Ihre Hilfe bitten? –

+0

Danke. Ich habe diesen Ordner "Produkte" in diesem Pfad: '/ Abschnitt/Produkte /'. Ich habe auch die Datei _product echoer_ ('products.php'), und ich möchte in der Lage sein, zwischen' products' und 'products /' zu unterscheiden, also wenn die URL nicht der Schrägstrich sollte 'products.php' gehen . Wenn die URL den Schrägstrich hat (ohne dass etwas anderes als "get" übergeben wird), muss sie auf "/ section/products" (die .php-Datei) umgeleitet werden. Ich hoffe, ich habe das richtig erklärt. –

+0

Ja ist es. Innerhalb '/ section /' Ich habe '/ section/products.php' und'/section/products/'. –