Setup
Próbuję zainstalować laravel 5 aplikację w katalogu na moim serwerze:Install laravel 5 aplikację w podkatalogu z htaccess
public_html/myapp/
I ma to być dostępne w URL:
http://www.example.com/myapp/
Stworzyłem tę regułę .htaccess i umieścić go w myapp
folderu w celu przekierowania żądań:
RewriteEngine on
RewriteRule ^(.*)$ public/$1 [L]
Problem:
w przeglądarce, gdy próbuję otworzyć aplikację dostaję przekierowany URL jak:
http://www.example.com/myapp/public/index.php
http://www.example.com/myapp/public/index.php/dashboard
zamiast ładnej ładnej U RLS, takie jak:
http://www.example.com/myapp/
http://www.example.com/myapp/dashboard
Co muszę zmienić w moim pliku .htaccess, aby uzyskać odpowiednie adresy URL działa?
Update: Aplikacja laravel można przenieść w inne miejsce, jeśli to konieczne, pod warunkiem, pożądanej struktury URL powyżej (z aplikacji dostępnych w example.com/myapp/) może być osiągnięte.
Update: Przy próbie dostępu example.com/myapp/dashboard
otrzymuję następujący komunikat o błędzie w przeglądarce: NotFoundHttpException in compiled.php line 7793:
ze śladu stosu, który zaczyna się:
in compiled.php line 7793
at RouteCollection->match(object(Request)) in compiled.php line 7066
at Router->findRoute(object(Request)) in compiled.php line 7038
at Router->dispatchToRoute(object(Request)) in compiled.php line 7030
at Router->dispatch(object(Request)) in compiled.php line 1989
at Kernel->Illuminate\Foundation\Http\{closure}(object(Request))
Aktualizacja: Poniższy plik .htaccess znajduje się w publicznie Folder:
<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>
Czy masz również plik htaccess w folderze publicznym? –
Czy instalacja aplikacji w public_html nie powoduje, że wszystkie pliki Laravel są dostępne dla wszystkich? – Mahozi
Hmm, prawdopodobnie tak. Jeśli instaluję poza public_html, jak wskazałbym to na .htaccess? (Przyjmę to jako poprawną odpowiedź, o ile tylko osiągnie strukturę URL, na którą mam nadzieję). –