2016-03-28 5 views
0

Wie verwende ich Mod_Rewrite, um die folgende URL zu ändern?Wie verwenden Sie .htaccess mod_rewrite zum Ändern der folgenden

main/order/$var to /$var.

Ich benutze bereits .htaccess, um /.index.php/$var zu /$var umzuschreiben. Dies ist ein Codeigniter-Setup. Daher wäre die vollständige URL /.index.php/main/order/$var.

Hier ist meine aktuelle Datei:

RewriteEngine on 
RewriteCond $1 !^(index\.php|images|robots\.txt|css|js|stats) 
RewriteRule ^(.*)$ /index.php/main/order/$1 [L] 

ich einen misconfuguration Fehler erhalte, wenn diese zu optimieren versucht.

+0

Nun, warum gehst du nicht einfach das bestehende Muster erweitern, da Sie es sagen funktioniert und Sie möchten es nur ändern. Du weißt schon wie. – arkascha

+0

Wenn Sie wirklich ein bestimmtes Problem haben, dann nennen Sie es. Und bitte posten Sie Ihren bestehenden Code. – arkascha

+0

Die aktuelle Datei wurde hinzugefügt. Entschuldigung, dass sie nicht im Voraus enthalten ist. Danke – akes406

Antwort

0

Ich bin verwirrt, Sie behaupten, Sie haben eine funktionierende Version der .htaccess Style-Datei veröffentlicht, aber das sieht eher wie ein Versuch aus, den Sie gemacht haben. Die index.php im RewriteRule sieht mir komisch (aber ich weiß nicht, codeigniter gut), und es sollte sicherlich nicht erscheinen in beiden, dass RewriteCondund eine RewriteRule ...

Ihre RewriteRule da drin aussieht in Ordnung, aber ich schlage vor, zu verwenden, dass RewriteCond:

RewriteEngine on 
RewriteCond %{REQUEST_URI} !^(index\.php|images|robots\.txt|css|js|stats) 
RewriteRule ^(.*)$ /index.php/main/order/$1 [L,QSA] 
+0

Ich erhalte einen 500 internen Serverfehler, wenn ich das oben genannte benutze. Fehler im Apache-Protokoll: AH00124: Die Anforderung hat das Limit von 10 internen Weiterleitungen aufgrund eines möglichen Konfigurationsfehlers überschritten. Verwenden Sie 'LimitInternalRecursion', um das Limit bei Bedarf zu erhöhen. Verwenden Sie 'LogLevel debug', um ein Backtrace zu erhalten. – akes406

+0

Sorry, ich habe tatsächlich vergessen die 'index.php' in der Bedingung ist erforderlich, um eine solche Umleitung Schleife zu verhindern. Sollte jetzt funktionieren :-) – arkascha

0

Dies erwies sich als ein einzigartiges codeigniter Szenario sein. Ich habe diese Arbeit die folgende .htaccess mit:

RewriteEngine on 
RewriteCond $1 !^(index.php|images|robots\.txt|css|js|stats) 
RewriteRule ^(.*)$ /index.php/$1 [L] 

Ich musste dann konfigurieren routes.php wie folgt

$route['main'] = 'main/order'; 
$route['(:any)'] = 'main/order/$1'; 
+0

Ich kann immer noch keinen Sinn von diesem 'RewriteCond' machen, aber egal, wenn es das tut, was du willst, großartig! – arkascha

Verwandte Themen