Yii2 Benutzerdefinierte url-management. Erste 400-Fehler
Gut, PHP Zeiten.
Mein Kunde will mich Yii2 als Rahmen für sein Projekt.
Ich bekam es zum laufen. Kein problem. Ich benutzte die erweiterte Vorlage über Komponisten.
Meinen web-root auf /frontend/web, etc.
NUN, ich will verwenden Sie diese url-format
website.com/messages/oder website.com/messages/tom... etc.
Gerade jetzt so, wie ist das setup zeigt website.com/index.php?r=messages/index...
Fand ich diese Dokumentation...
https://github.com/yiisoft/yii2/blob/master/docs/guide/url.md
Aber ich kann nicht scheinen, um es gerade.
Hier sind meine Schritte...
Konfiguriert habe, apache-server, /usr/www/Abrechnung/frontend - /web -/
Ich Hinzugefügt, um meine web-Ordner ein .htaccess-Datei mit diesem Inhalt.
RewriteEngine on
# If a directory or a file exists, use it directly
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# Otherwise forward it to index.php
RewriteRule . index.php
Habe ich auch noch die Komponente 'urlManager', wie in den Anweisungen. Es scheint, fangen die Anfrage und es ändern.
'components'=>[
'urlManager' => [
'class' => 'yii\web\UrlManager',
'enablePrettyUrl' => true,
'showScriptName' => 'false'
],
],
Zum Beispiel, wenn ich Schreibe website.com Sie können sehen, es fügt /site/index auf der url. (ohne die url-Komponente aktiv, es fügt einfach /index.php?site/index)
So, offensichtlich gibt es eine Modifikation durchgeführt, um die url (über UrlManager), aber ich bekomme Fehler 404
Ich bin running out of Ideen hier. Ich bin neu in Php, Apache und Yii2. Jede Hilfe, Sehr dankbar.
Dank
Wenn ich die Komponenten code-stub zu meiner config-Datei, gibt es nicht.
Egal was ich mache, es nie zeigt website.com/controller/action.... wenn ich die Komponente-code meiner config es gar nicht funktionieren, wie es sollte von Standard - ... das heißt, website.com/index.php?r=controller/action
'showScriptName' =>', false,' es soll sein 'showScriptName' => false
Sorry, das war ein vertippen auf hier, nicht auf den code. In meinem code es zeigt stattdessen ' false 'false'.
InformationsquelleAutor Pepito Fernandez | 2014-04-10
Du musst angemeldet sein, um einen Kommentar abzugeben.
Hübsche URL arbeiten auf Yii 2.0 benötigen Sie 2 Dinge:
1: Bearbeiten
/frontend/config/main.php
(oder die entsprechenden Haupt-config in deinem Fall) und fügen Sie hinzu:2: Fügen Sie ein .htaccess-Datei in IHR WEB-ROOT Ordner.
In yii 2.0 erweitert dieses ist NICHT Projekt-root-Verzeichnis sondern:
/frontend/web
.htaccess-Beispiel:
basic/config/web.php
. Danke.meinst du
project_root_dir/config/web.php
?Ja, ich wünschte, ich könnte mein edit-Kommentar.
'showScriptName' => 'false' sollte 'showScriptName' => false
danke @MoemenMostafa es war eine schlechte Kopie einfügen.
InformationsquelleAutor d.raev
ändern Sie einfach 'showScriptName' => 'false' , 'showScriptName' => false, und es wird funktionieren
InformationsquelleAutor Goo
Wenn Sie verwenden möchten, wie diese
http://domain.com/controller_name/action_name
, brauchen Sie nur zu aktivieren, pretty-url in deine config-Datei :Nun können Sie urls, wie Sie es wollen " website.com/messages/oder website.com/messages/tom.
Wenn Sie möchten, verwenden query-string im url, das ist, wie es funktioniert jetzt in Yii 2
website.com/message?id=12
InformationsquelleAutor KB9
Ok, hier ist die Lösung.
In recents-version von Apache (aus 2.3.9), AllowOverride auf NONE gesetzt ist, standardmäßig. Vorherige Versionen haben von AllowOverride auf ALL gesetzt.
Yii2 davon ausgegangen, dass AllowOverride auf ALL.
Wenn Sie wollen den ganzen thread durchgelesen, bei Yii-Forum, hier ist der link
http://www.yiiframework.com/forum/index.php/topic/53295-url-manager-for-seo-friendly-url-404-error-code/
Danke für Eure Hilfe und Nachrichten!
InformationsquelleAutor Pepito Fernandez
Für Yii2 basic, habe ich nur noch einen der folgenden codes, um /myappfolder/config/web.php:
Auch, Hinzugefügt .htaccess in /myappfolder/web/:
Dies funktioniert gut für mich. Hoffe, dies hilft anderen Menschen, die gleiche problem habe. : )
InformationsquelleAutor puppyceceyoyo