Yii2 entfernen index.php von url
Wenn ich die option in Yii zu entfernen index.php aus der URL bekomme ich einen 404-Fehler und dieser Fehler in die error-logs File does not exist: /var/live/var
. In meinem browser bekomme ich diesen Fehler The requested URL /var/decat/frontend/web/index.php was not found on this server.
aber die Datei ist genau in dieser Lage. Was erklären könnte, dass ist, dass mein document root ist /var/live
und decat ist ein alias, wie gezeigt, in der conf Datei.
Diese url funktioniert http://130.211.165.180/decat/index.php/site/login aber wenn ich es entfernen index.php wenn ich den Fehler. Ich folgte allen Anweisungen, um es einzurichten in der conf-Datei. Ich habe sogar versucht über eine .htaccess-Datei. Hier ist die info aus meiner conf-Datei.
Alias /decat /var/decat/frontend/web
<Directory "/var/decat/frontend/web">
# use mod_rewrite for pretty URL support
RewriteEngine on
# If a directory or a file exists, use the request directly
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# Otherwise forward the request to index.php
RewriteRule . index.php
Options -Indexes FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
</Directory>
- Die config sieht ok aus. Haben Neustart des apache-service?
- Ich habe es neu gestartet und jetzt bekomme ich den neuen Fehler, dass ich geschrieben in der Frage
- Wenn Sie sagen, dass Ihr DocumentRoot-Verzeichnis ist
/var/live
dann verstehe ich nicht, warum Sie den Alias zu/var/decat
und nicht zuvar/live
. VersuchenAlias /decat /var/live/frontend/web
und auch<Directory "/var/live/frontend/web">...
- Weil ich nicht den Ordner im document root um die Sicherheit zu erhöhen, das ist, warum ich bin mit einen alias für den Zugriff auf die einzige Ordner, der zugänglich sein sollte. Der Ordner ist in var/decat, es funktioniert gut mit der index.php damit der alias korrekt arbeitet
- Versuchen Sie, fügen Sie
RewriteBase /decat/
nachRewriteEngine on
(und apache neu starten) - das war es, fügen Sie bitte Ihren Kommentar als eine Antwort, damit ich zuordnen kann, die bounty
Du musst angemeldet sein, um einen Kommentar abzugeben.
Hinzufügen
RewriteBase /decat/
nachRewriteEngine on
und starten Sie apache neu.Sollten Sie Url-Manager-Komponente wie folgt:
Offiziellen docs:
yii2 entfernen-web-url
1) Bearbeiten config/web.php Datei mit den folgenden
2) Fügen Sie die folgende htaccess auf root/web -
3) Fügen Sie die folgende htaccess auf root-Ordner, in dem die Anwendung installiert ist
Sollten Sie ändern .htaccess als
und urlManager Regel als
Ich diese in meiner app. und es arbeitet.
meine url ist Schuhe http://www.example.com/user/view?id=1
sudo a2enmod rewrite sudo service apache2 restart
Nun gehen Sie zu “/etc/apache2/apache2.conf" öffnen Sie Ihren Lieblingseditor und ändern Sie die "AllowOverride none" bis "AllowOverride All" speichern Sie Ihre änderungen müssen Sie den Apache neu starten wieder durch oben genannten Befehl. Datei auf readonly-Modus. So sicherzustellen, dass die root-Anmeldung so fügen Sie das "su" - Befehl zunächstsu vim /etc/apache2/apache2.conf sudo service apache2 restart
tutsnare.com/remove-index-php-from-url-in-yii2Ich denke, es ist Ihre Apache-Konfiguration, das ist falsch... Sie sagen, dass es nur umschreiben von Anfragen, die ein einzelnes Zeichen, wie ich bin, es zu Lesen?
Ich denke, es muss sein:
Aber ich kann falsch sein, nicht ein
apache
SpezialistenFile does not exist: /var/decat/frontend/web/site
sollte esweb/index.php
nichtsite
, aber das ist der gleiche Fehler, ich war immer vor dem Neustart des apache-servicesite
überall in meiner Antwort, keine Ahnung, was Sie sich beziehen.die("here");
am Anfang (vor etwas getan wird). Wenn ausgegeben wird, anstatt die Fehler der apache richtig konfiguriert ist und das übergeben, was zu yii.