2017-09-16 4 views
1

Ich habe schon eine ganze Weile um dieses Problem konfrontiert, aber ich habe immer verändert einfach die Dateinamen, aber ich kann.htaccess falsch RewriteRule zwingende richtige

Ich habe die folgenden zwei RewriteRules, dass dieses Mal nicht tun set:

RewriteRule ^register-company register-company.php 
RewriteRule ^register register.php 

das Gleiche gilt für gilt

RewriteRule ^register/company register-company.php 
RewriteRule ^register register.php 

Egal was ich tue, die Reihenfolge ändern, fügen sie Fahnen, die Flucht der Bindestrich, es immer zu register.php umleitet und nicht register Unternehmen, wie es sollte (der Link ist domain.com/register-company)

Das einzige, was tatsächlich funktioniert, ist die vollständige Änderung des Namens, zum Beispiel in das Firmenregister. Beachten Sie, dass, wenn ich die Register register.php Linie entfernen, es funktioniert gut und leitet korrekt zu register-company.php

Antwort

1

Problem, dass Ihre Ziel-URI register-company.php entspricht auch nächste Regel Muster dh ^register daher zweiten Regel immer nach der ersten Regel ausgeführt wird .

Sie müssen Ende Anker in Ihren Regeln verwenden:

RewriteRule ^register-company/?$ register-company.php [L,NC] 

RewriteRule ^register/?$ register.php [L,NC] 

Nun 2. Regel nicht ausgelöst, weil register-company.php wird ^register/?$ nicht überein.

Auch /?$ macht Schrägstrich optional in beiden Regeln.

+1

Es tut, danke: p – alps