2009-07-15 6 views
3

wie entferne ich die index.php von der cakephp url? Um auf meinen Formularordner zuzugreifen, muss ich die URL angeben: http://localhost/cake_1_2/index.php/forms.entfernen index.php from cookephp url

Wie entferne ich diese index.php?

Ich entfernte die .htaccess aus den Ordnern wie in core.php erwähnt und die App.baseUrl Zeile unkommentiert. Leider kann ich die Seite ohne die index.php in der URL nicht anzeigen.

+0

Uh ... warum würden Sie das tun? index.php sollte nicht standardmäßig sichtbar sein, aber jetzt, nachdem Sie .htaccess-Dateien entfernt haben, wird es am positivsten gesehen. –

+0

Dann sollte ich diese Dateien nicht entfernen? Ich möchte nicht die index.php in meiner URL. – Angeline

+3

Wenn Sie saubere URLs ohne index.php verwenden möchten, benötigen Sie die .htaccess-Dateien, plus mod_rewrite muss aktiviert sein. – dhofstet

Antwort

2

Wenn du CakePHP mit mod_rewrite benutzt (um hübsche URLs zu bekommen), kannst du neue Ordner innerhalb von WEBROOT erstellen und auf Dateien zugreifen.

Beispiel:

Site/webroot/forms/form.php = http://www.sitename.com/forms/form.php 

CakePHPs mod_rewrite ist Setup für vorhandene Dateien in WEBROOT und NICHT zu überprüfen sie passieren index.php.

Wenn Sie zu einem Ordner außerhalb von Webroot gelangen möchten, sollten Sie mit symbolischen Links spielen.

1

Überprüfen Sie die CakePHP Install guide Abschnitt für mod_rewrite. Sobald sie in Apache aktiviert sind, funktionieren die hübschen URLs einfach. Wenn Sie Apache nicht verwenden, bleiben Sie bei hässlichen URLs stecken.

+0

Nicht wahr. Sie können mod_rewrite und die kurzen URLs auch in lighttpd verwenden. –

0

Sie können auch diese Mod Neuschreiben Tutorial here überprüfen. Es hat allgemeine Informationen, die für die Reinigung von URLs in vielen Situationen hilfreich sein können. Dort sind auch Beispiele enthalten.

1

einfach diese folgenden Schritte folgen, um sicherzustellen, es ist oder nicht

  1. Überprüfen Sie root, app, Webroot die tatsächliche .htaccess-Datei enthält.

  2. Der Apachee Server haben die folgende Konfiguration:

    <Directory /> 
    Options FollowSymLinks 
    AllowOverride All# 
    Order deny,allow# 
    Deny from all 
    </Directory> 
    
  3. Auch diese Linie uncammented:

    LoadModule rewrite_module libexec/apache2/mod_rewrite.so 
    

neu starten Sie dann Ihre apache die Änderungen

1

ich zu sehen hatte das gleiche Problem und hatte index.php in der UR L. Sie bearbeiten den falschen Bereich in httpd.conf. Sie außerdem sicher, Ihre .htaccess-Dateien existieren in: /.htaccess, /app/.htaccess und /app/webroot/.htaccess

Ihre httpd.conf sollte wie folgt aussehen:

# Leave this area alone, CakePHP docs are wrong 
<Directory /> 
    Options FollowSymLinks 
    AllowOverride None 
    Order deny,allow 
    Deny from all 
</Directory> 

# Match this area 
<Directory "/SomePath/app/webroot"> 
    Options Indexes FollowSymLinks MultiViews 
    AllowOverride All # Turn AllowOverride All on here 
    Order allow,deny 
    Allow from all 
</Directory> 

Nachdem ich dies kann ich problemlos Routen erstellen & Zugriff auf Seiten wie: http://localhost/about/

Genießen Sie!

0

Also sollte es in Ordnung sein? Sie haben bereits mod_rewrite?

Wenn mod_rewrite korrekt geladen ist, sind .htaccess-Dateien vorhanden und indexiert.PHP erscheint immer noch in Links, dann ist es wahrscheinlich ein Problem mit der core.php Framework-Konfigurationsdatei.

Problem Ursache

In meinem Fall war es Problem mit App.baseUrl Konfigurationsoption:

Configure::write('App.baseUrl', env('SCRIPT_NAME')); 

Solving Problem

Hier ist, wie ich dieses Problem behoben (und einige andere mit Umleitungen) durch folgende Zeile aus core.php Kommentierung aus:

// Configure::write('App.baseUrl', env('SCRIPT_NAME')); 

oder Kuchen 3+ bei config/app.php

//'baseUrl' => env('SCRIPT_NAME')