Laravel 5.5 pozybycie się public oraz index.php

0

Hej,
nowy w L5 ... zainstalowałem nowiutki projekt i chciałbym się pozbyć url w stylu http://mojProjekt/public/index.php/login

mod_rewrite mam właczony.
Znalezłem na SO myk następujący:

  1. skopiuj .htaccess z public do root aplikacji
  2. zamień server.php na index.php

gdy zrobie np. php artisan make:auth
i url http://apka/login
dostaje Sorry, the page you are looking for could not be found.

tyle sie naczytałem jak to wykonać ale nic się nie sprawdza. Zarówno na Linuxie i win z xampp

0

Ustaw w document root w Apache na katalog public.

0

htaccess:

RewriteEngine On 
RewriteRule ^(.*)$ public/$1 [L]

lub/i w laravel_code/bootstrap/paths.php

'app' => __DIR__.'/../app',
'public' => __DIR__.'/../../',
0

jeszcze o jendym zapomnialem
aplikację mam w podkatalogu tzn. htdocs/NazwaProjektu

0

poniższy kod sprawia, że omijam tylko index.php.

<IfModule mod_rewrite.c>
   <IfModule mod_negotiation.c>
        Options -MultiViews
   </IfModule>

RewriteEngine On
RewriteBase /nazwaAplikacji/
# Redirect Trailing Slashes If Not A Folder...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/$ /$1 [L,R=301]

# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ public/index.php [L]

# Handle Authorization Header
RewriteCond %{HTTP:Authorization} .
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
0

Dlaczego nie ustawisz po prostu document root na katalog /var/www/htdocs/twoj-projekt/public tak, jak sugeruje każdy poradnik oraz dokumentacja Laravela?

0

co masz na myśli konkretniej?
moja aplikacja ma być w podkatalogu. Nie skonfigurowałem Virtual Hosta - nie chce.
Czy zmiana w apache DocumentRoot nie będzie obowiązywała globalnie?

0

Nie skonfigurowałem Virtual Hosta - nie chce.

Czyli sam sobie tworzysz problemy, z którymi teraz próbujesz dzielnie walczyć.
Rozwiązaniem Twojego problemu jest utworzenie wirtualnego hosta i ustawienie jego document root na katalog public Twojej aplikacji.

0

a powiedz wystarczy tylko ten virtual host + DocumentRoot ?
czy ruszam coś w projekcie?

0

ja robiłem też w ten sposób:
https://www.codementor.io/magarrent/how-to-install-laravel-5-xampp-windows-du107u9ji
akurat pod xampp, po wejściu w laravel.dev masz startową
spróbuj

0

tak to jest dokładnie to o czym wspomnial Patryk
Zrobiłem VHost i wszystko śmiga.
dzieki

0

Zawartość katalogu public powinna być zainstalowana jako ostatnia. Po instalacji wszystkich folderów i plików frameworka Laravel, należy zawartość katalogu public zainstalować w głównym katalogu aplikacji.

0

Czyli praktyka mówi np. (zależy od systemu) /var/www/html katalog główny apacza.

  • Do katalogu html wrzucamy tylko katalog public
  • Do katalogu www całą pozostałość Laravela
  • kreujemy VirtualHost z DocumentRoot ustawionym na katalog public
  • robimy wpis w /etc/hosts

Czy tak? Czy w przypadku separacji folderów frameworka musimy pokazać mu - zmienić gdzieś ścieżki?

0

Sorry, ale chyba nie rozumiem jakim cudem mozna uzyskac adres url: http://mojprojekt/public/index.php/login
Pierwszy raz spotykam się z takim problemem.
Instalacja Laravela na publicznym hostingu odbywa się poprzez composera, albo poprzez transfer plików z localnej maszyny na publiczny serwer za posrednictwem FTP. W tym drugim przypadku folder public nalezy przesłać na serwer jako ostatni, przyczym nalezy przesłac tylko zawartość folderu public i jezeli na hostingu (serwerze) działą wersja php jakiej wymaga Laravel, to po zakonczeniu instalacji wystarczy odwiedzic strone i powinno działac tak samo jak na localhost.

0

wszystko można, jak w większości frameworków php zlikwidować public, czy index, czy oba, możesz w htaccess, możesz w paths, możesz uzyskać przyjazne linki pod seo poprzez routes, opcji jest kilka, trzeba pokombinować jak zawsze

1 użytkowników online, w tym zalogowanych: 0, gości: 1