Frage

Ich habe noch nie ein Problem mit CakePHP hatte, aber etwas ist seltsam zu diesem Server und verursache die Umleitungen in den .htaccess-Dateien seltsam verhalten.

mod_rewrite CakePHP Anwendungen in .htaccess-Dateien Anfragen an seine eigenen Webroot-Ordner zu umleiten. Das Problem ist, dass die Umleitungen den falschen Weg sind, das Auflisten und verursacht einen 404-Fehler. Meine CakePHP-Anwendung, die in dem Listings Verzeichnis gespeichert ist, hat eine .htaccess-Datei wie folgt:

<IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteRule    ^$ app/webroot/    [R=301,L]
    RewriteRule    (.*) app/webroot/$1 [R=301,L]
</IfModule>

(* Hinweis, dass die R = 301 bewirkt, dass eine externe Umleitung, damit wir sehen, was aus unserem Ende geht. Es ist wirklich dieses Flag weglassen sollte und tun, um die Umleitung intern transparent zu den Endnutzern)

Dies soll jede Anfrage von http://hostname.com/~username/listings/ zu http://hostname.com/~username/listings/app/webroot/ umleiten Anstatt jedoch einfach den Zusatz „app/webroot/“ bis zum Ende, wie es sollte, es fügt den vollständigen Serverpfad (/home/username/public_html/listings/app/webroot/), die sich in der letzten URL http://hostname.com/home/username/public_html/listings/app/webroot/, die offensichtlich falsch ist und lösen einen 404 Fehler.

Das Hosting ist auf einem Shared-Hosting-Konto, so dass Grenzen, was ich mit den Einstellungen zu tun. Ich habe noch nie das geschehen gesehen, und ich bin es etwas falsch von der Hosting-Seite der Dinge zu denken, aber wenn jemand ein paar hilfreichen Anregungen hat, dann kann ich sie an das Hosting-Unternehmen als auch setzen.

War es hilfreich?

Lösung

Die Lösung für Ihre Frage kann in Richtung der Unterseite dieser gefunden werden http://example.com/~username/cakephp/ installieren ), oder jede andere URL-Struktur, dass mod_rewrite bereits nutzt, müssen Sie RewriteBase Rechnung an die .htaccess-Dateien CakePHP Anwendungen (/.htaccess, /app/.htaccess, /app/webroot/.htaccess) hinzuzufügen.

Ich habe auch CakePHP aus meinem Profil der public_html Ordner im Einsatz. Ich hatte 3 die gleichen .htaccess-Dateien oben erwähnt zu ändern. Fügen Sie einfach RewriteBase /~username/ auf die .htaccess-Dateien direkt nach RewriteEngine on!

Andere Tipps

Versuchen Sie .htaccess aus Haupt-Datei zu entfernen ... Es funktionierte für mich

Es war recht einfach (uolhost Hostern mit):

Bearbeiten beide .htaccess-Dateien:

/webroot/.htaccess

/. .Htaccess

Fügen Sie die folgende Zeile: RewriteBase /

Hier ist die ganze /webroot/.htaccess-Datei:

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]

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