2 Stimmen

Sehr seltsames .htaccess Rewrite-Problem

Ich habe ein seltsames Problem mit meiner .htaccess

Ich habe die folgenden Rewrite-Regeln

#REMOVE TRAILING SLASH
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)/$ $1 [R=301,L]

#REWRITES
RewriteRule ^clients(/)?$ /views/pages/clients.php [L]
RewriteRule ^about(/)?$ /views/pages/about.php [L]
RewriteRule ^contact(/)?$ /views/pages/contact.php [L]
RewriteRule ^mobile(/)?$ /views/pages/tags.php?tag=mobile [L]
RewriteRule ^tablet(/)?$ /views/pages/tags.php?tag=tablet [L]

Diese Regeln funktionieren, aber zwei von ihnen verhalten sich seltsam.

RewriteRule ^clients(/)?$ /views/pages/clients.php [L]
RewriteRule ^mobile(/)?$ /views/pages/tags.php?tag=mobile [L]

Die Rewrite-Regel "clients" erhält immer einen abschließenden Schrägstrich.

Die Rewrite-Regel "mobile" wird umgeschrieben in http://www.mydomain.com/mobile/?tag=mobile

Ich muss dieses Problem beheben, weil diese Regeln zu unnötigen Weiterleitungen führen, die meine SEO-Leistung beeinträchtigen

Ich finde das sehr seltsam, denn sie sind den anderen ähnlich und funktionieren einwandfrei.

Eine weitere bizarre Tatsache: auf meinem Localhost funktionieren die Rewrites einwandfrei, auf meinem Produktionsserver verhalten sie sich seltsam

Außerdem habe ich gerade herausgefunden, dass die folgende Rewrite-Regel entsprechend wirkt:

RewriteRule ^client(/)?$ /views/pages/clients.php [L]

Hier fehlt der abschließende Schrägstrich, also muss es sich um etwas mit dem Wort "clients" auf der linken Seite der Regel handeln.

UND

Diese Regel funktioniert auch gut

RewriteRule ^mobiles(/)?$ /views/pages/mobile.php [L]

Wenn ich also "clients" und "mobile" auf der linken Seite der Regel verwende, verhält sie sich seltsam. Wenn ich "client" und "mobiles" verwende, funktioniert es einwandfrei.

Kann es sein, dass "Kunden" und "mobil" reservierte Wörter sind oder so?

0voto

darklion Punkte 995

Wenn Sie eine clients Verzeichnis auf dem Produktionsserver, könnte dies zu dem Problem führen, das Sie mit dem Rewrite haben. (Es ist möglich, dass es ein ähnliches Problem mit dem Vorhandensein eines mobilen Verzeichnisses auf dem Produktionsserver gibt, aber ich kann nicht sicher sein, ohne selbst einige Tests durchzuführen).

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X