Frage

Ich bin mit mod_rewrite SEO URLs zu erstellen. Grundsätzlich funktioniert die Sache wie folgt: alle Anfragen von .htaccess und weitergeleitet zu einem PHP-Skript abgefangen werden (lassen Sie uns sagen transform.php). transform.php parst SEO URL und verwandelt sie in eine normale URL enthält dann index.php, dann die fängt Anwendung (index.php des) -Ausgang und verwendet RegEx alle normalen URLs zu konvertieren URLs SEO. So die entscheidende Schritt ist, um alle Ihre Anfrage durch den transform.php gehen zu machen. Meine .htaccess ist ziemlich lang aber ich es auf die folgenden Zeilen begrenzen verwaltet werden.

<IfModule mod_rewrite.c>
    Options +FollowSymLinks
    RewriteEngine on

    RewriteRule ^index\.php?(.*)$ ./transform.php?p=$1&%{QUERY_STRING} [L]

</IfModule>

Das Problem tritt mit der Anfang (root) URL: http://mysite.com/ . Wenn ich tippe http://mysite.com/ und Standort befindet sich auf meinem lokalen comp, funktioniert alles einwandfrei. http://mysite.com/ durch .htaccess aufgefangen und zur Weiterverarbeitung an transform.php gesendet. Jedoch auf einem anderen Server diese Zeile nicht (lassen Sie uns für http://mysite-other-server.com sagen funktioniert / ). Diese .htaccess Linie verfängt einfach nicht die Anforderung. Alles funktioniert gut für http://mysite-other-server.com/index.php though.

Außerdem habe ich mehrere Seiten auf diesem zweiten Server und einige von ihnen arbeiten, während einige von ihnen nicht. Es ist wie für einige von ihnen die URL zuerst http: // mysite-other-Server. com / index.php und dann durch .htaccess behandelt, während die URL für andere nicht behoben und .htaccess beschäftigt sich mit http://mysite-other-server.com/

Ich bin sehr verwirrt und versuchte ohne Erfolg googeln. Jede Hilfe ist sehr geschätzt.

War es hilfreich?

Lösung

Ich gehe davon aus, dass Apache so konfiguriert ist, keine Dateien zu akzeptieren .htacces.

Sie müssen es von der httpd-Konfiguration mit der Einstellung AllowOverride ermöglichen.

http://httpd.apache.org/docs/2.0 /mod/core.html#allowoverride

Eine andere Möglichkeit ist, dass die Produktionsserver nicht geladen mod_rewrite hat, überprüfen Sie die LoadModule- Richtlinien dafür.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top