Wie kann ich http://domain.com/public/index.php zu http://domain.com ändern und kann die anderen Routen arbeiten als ('/')
?Laravel 5.2 Pretty URLs
Problemumgehung 1:
vhost-Datei:
<VirtualHost *:80>
DocumentRoot "/var/www/html/domain/public"
ServerName domain.com
<Directory "/var/www/html/domain/public">
AllowOverride All
Allow from All
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
.htaccess-Datei:
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews
</IfModule>
RewriteEngine On
# Redirect Trailing Slashes...
RewriteRule ^(.*)/$ /$1 [L,R=301]
# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule^index.php [L]
</IfModule>
Mit diesem Aufbau, ja, ich bin in der Lage http://domain.com einstellen aber wenn ich versuche g, um eine andere Route aufzurufen und einen 404 zu erhalten. Der Grund dafür ist, dass Sie meinen Stammordner als öffentlich festgelegt haben. So können meine Routen ihre Ziele nicht erreichen (wie diejenigen, die an meine Controller geleitet werden, weil sich meine Controller nicht im öffentlichen Ordner befinden).
Abhilfemaßnahme 2:
Wenn i Document root und Verzeichnis in /var/www/html/domain/
dieses Mal, wenn ich meine ziemlich url bin zu verlieren und nur so ändern kann ich von Haupt-Seite anfordern http://domain.com/public/index.php
eingeben.
Beachten Sie, dass ich Ubuntu 14.04 verwende.
Was schlagen Sie vor?
--- --- Update
Routen Beispiel:
Route::get('myroute', array(
'uses' => '[email protected]',
'as' => 'myroute'
));
--- Update 2 --- php Handwerkers Route: Liste Ergebnisse sind
+--------+----------+---------+------+---------+------------+
| Domain | Method | URI | Name | Action | Middleware |
+--------+----------+---------+------+---------+------------+
| | GET|HEAD |/ | | Closure | web |
| | GET|HEAD | myroute | | Closure | web |
+--------+----------+---------+------+---------+------------+
Ihr virtueller Host ** sollte ** auf den öffentlichen Ordner zeigen, es gibt keine Umgehungslösungen und Tricks, er sollte genauso funktionieren wie er ist. Können wir sehen, wie Sie Ihre Routen definieren, die Sie 404 erhalten? – TheFallen
Die virtuelle Hosts-Lösung sollte gut funktionieren. Aus Ihrer Beschreibung geht hervor, dass Sie kein Verständnis dafür haben, wie der Laravel funktioniert. Der Einstiegspunkt wird immer 'index.php' sein, selbst wenn wir virtualhost auf das öffentliche Verzeichnis verweisen, erreichen alle Anfragen die Datei' index.php', die dann die Anfrage bootstrappt und die Anfrage wie gewünscht weiterleitet. Alle Routen sollten gut funktionieren. – saji89
@TheFallen Ich habe den Beitrag aktualisiert. –