Laravel 5-Usuń publiczny z adresu URL
Wiem, że to bardzo popularne pytanie, ale nie udało mi się znaleźć działającego rozwiązania dla Laravel 5. Od dłuższego czasu próbuję przeprowadzić migrację z Codeigniter, ale ten zawiły proces instalacji wciąż mnie zniechęca.
Nie chcę uruchamiać maszyny wirtualnej, to po prostu wydaje się niezręczne podczas przełączania między projektami.
Nie chcę ustawiać katalogu głównego dokumentu na folderze publicznym, jest to również niezręczne podczas przełączania między projektami.
Próbowałem .htaccess metoda mod_rewrite<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^(.*)$ public/$1 [L]
</IfModule>
To po prostu daje mi Laravel NotFoundHttpException w skompilowanym.php line 7610
Kiedy jakiś czas temu próbowałem L4, użyłem metody przenoszenia zawartości folderu publicznego do katalogu głównego. Struktura L5 jest zupełnie inna i po tych samych krokach całkowicie złamał Laravel (serwer zwróci tylko pustą stronę).
Czy istnieje przyzwoita metoda usuwania 'public' w środowisku deweloperskim, które:
- Działa z L5
- pozwala mi łatwo przełączać się między projektami (Zwykle pracuję na 2 lub 3 w tym samym czasie).
Thanks
** używam MAMP i PHP 5.6.2
22 answers
Dla Laravel 5:
- Zmień nazwę
server.php
w głównym folderze Laravel naindex.php
- skopiuj plik
.htaccess
z katalogu/public
do katalogu głównego Laravel folder.
To jest to !! :)
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-04-16 20:19:35
Rozwiązałem problem używając 2 Odpowiedzi:
- zmiana nazwy serwera.php do indeksu.php (bez modyfikacji)
- skopiuj .htaccess z folderu publicznego do folderu głównego (jak rimon.ekjon said below)
-
Zmiana .htaccess to trochę w następujący sposób dla statyki:
RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)/$ /$1 [L,R=301] RewriteCond %{REQUEST_URI} !(\.css|\.js|\.png|\.jpg|\.gif|robots\.txt)$ [NC] RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^ index.php [L] RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_URI} !^/public/ RewriteRule ^(css|js|images)/(.*)$ public/$1/$2 [L,NC]
Jeśli są potrzebne inne pliki statyczne wystarczy dodać rozszerzenie do poprzedniej zadeklarowanej listy
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-02-16 20:13:08
Łatwy sposób na usunięcie publicznego adresu URL z laravel 5. Musisz tylko obciąć indeks.php i .htaccess z katalogu publicznego i wklej go do katalogu głównego, to wszystko i zastąp dwie linie w indeksie.php as
require __DIR__.'/bootstrap/autoload.php';
$app = require_once __DIR__.'/bootstrap/app.php';
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-04-29 11:00:27
@Rimon.ekjon powiedział:
To mi pasuje. Ale wszystkie pliki zasobów w katalogu / public nie mogły znaleźć i żądania adresów URL nie działały, ponieważ użyłem asset () helper.Zmień nazwę serwera.php w katalogu głównym Laravel do indeksowania.php i skopiuj .plik htaccess z katalogu / public do folderu głównego Laravel. -- To wszystko !! :)
Zmieniłem / Oświetliłem / Fundację / pomocników.funkcja php / asset () wygląda następująco:
function asset($path, $secure = null)
{
return app('url')->asset("public/".$path, $secure);
}
Teraz wszystko działa :)
Dziękuję @rimon.ekjon i wy wszyscy.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-09-11 09:22:26
In Laravel 5.5 create .plik htacess w katalogu głównym i umieścił następujący kod: - Reference Link
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews
</IfModule>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -d [OR]
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^ ^$1 [N]
RewriteCond %{REQUEST_URI} (\.\w+$) [NC]
RewriteRule ^(.*)$ public/$1
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ server.php
</IfModule>
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-01-29 04:11:53
1) nie znalazłem działającej metody przenoszenia katalogu publicznego w L5. Chociaż możesz modyfikować niektóre rzeczy w indeksie bootstrap.php, wygląda na to, że kilka funkcji pomocniczych opiera się na założeniu, że istnieje tam katalog publiczny. Szczerze mówiąc, nie powinieneś przenosić publicznego katalogu.
2) Jeśli używasz MAMP, powinieneś tworzyć nowe vhosty dla każdego projektu, każdego obsługującego publiczny katalog projektów. Po utworzeniu uzyskasz dostęp do każdego projektu przez zdefiniowana nazwa serwera. http://project1.dev, http://project2.dev
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-02-08 01:38:43
Wystarczy utworzyć .htaccess plik w katalogu głównym i dodaj do niego te linie
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^(.*)$ public/$1 [L]
</IfModule>
To jest to!
Powyższy kod działa na głównym folderze public_html. Mówiąc, że twój podstawowy plik laravel powinien znajdować się w folderze public_html, jeśli twój katalog wygląda jak public_html/laravelapp/public i jeśli umieścisz powyższy kod w laravelapp, to nie zadziała. Dlatego musisz skopiować wszystkie swoje podstawowe pliki do public_html i umieścić .plik htaccess .
Jeśli chcesz keep the code in a subdirectory then you can create a subdomain then this code will work for that also.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-07-03 06:20:42
Możliwe jest usunięcie publicznego adresu url w laravel5. Wykonaj następujące kroki:
Krok 1 skopiuj cały plik z publicznego i wklej do katalogu głównego
Krok 2 Otwórz indeks.plik php zastąp przez
require __DIR__.'/../bootstrap/autoload.php';
Do
require __DIR__.'/bootstrap/autoload.php';
I
$app = require_once __DIR__.'/../bootstrap/app.php';
Do
$app = require_once __DIR__.'/bootstrap/app.php';
I usunąć wszystkie cache i pliki cookie.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-02-24 08:22:08
Załóżmy, że umieściłeś wszystkie inne pliki i katalogi w folderze o nazwie 'locale'.
Po prostu przejdź do indeksu.php i znajdź te dwie linie:
require __DIR__.'/../bootstrap/autoload.php';
$app = require_once __DIR__.'/../bootstrap/app.php';
I zmień je na to:
require __DIR__.'/locale/bootstrap/autoload.php';
$app = require_once __DIR__.'/locale/bootstrap/app.php';
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-02-19 17:26:17
Chciałbym dodać do @Humble Learner I zauważyć, że właściwą lokalizacją do "naprawy" ścieżki url dla zasobów jest / Illuminate/Routing / UrlGenerator.php/asset ().
Update the method to match:
public function asset($path, $secure = null)
{
if ($this->isValidUrl($path)) return $path;
$root = $this->getRootUrl($this->getScheme($secure));
return $this->removeIndex($root).'/public/'.trim($path, '/');
}
To naprawi Skrypty, style i ścieżki obrazów. Wszystko na cele majątkowe.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-11-02 03:10:56
Metoda 1:
Zmieniam nazwę server.php
na index.php
i działa
Metoda 2:
To działa dobrze dla wszystkich wersji laravel...
Oto moja struktura katalogów,
/laravel/
... app
... bootstrap
... public
... etc
Wykonaj te proste kroki]}
- Przenieś wszystkie pliki z katalogu publicznego do katalogu głównego / laravel /
- teraz, nie ma potrzeby publicznego katalogu, więc opcjonalnie możesz go teraz usunąć
- teraz otwórz indeks.php i wykonaj następujące zamienniki
Require DIR.'/../bootstrap / autoload.php";
Do
Require DIR."/bootstrap / autoload.php";
I
$app = require_once DIR.'/../start.php";
Do
$app = require_once DIR.'/bootstrap / start.php";
- teraz otwórz bootstrap / paths.php i zmiana ścieżki katalogu publicznego:
'public' => DIR .'/../ public",
Do
'public' = > DIR.'/..',
I to wszystko, teraz spróbuj http: / / localhost / laravel /
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-09-14 12:25:29
Zawsze jest powód, aby mieć publiczny folder w konfiguracji Laravela, wszystkie publiczne materiały powinny być obecne w publicznym folderze,
Nie kieruj adresu ip / domeny do folderu głównego Laravela, ale kieruj go do folderu publicznego. Niebezpieczne jest wskazywanie adresu IP serwera do folderu głównego., bo o ile nie zapiszesz ograniczeń w
.htaccess
, można łatwo uzyskać dostęp do innych plików.,
Wystarczy wpisać warunek rewrite w pliku .htaccess
i zainstalować rewrite moduł i Włącz moduł przepisywania, problem, który dodaje publiczne w trasie zostanie rozwiązany.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-04-19 10:29:17
Dla użytkownika XAMPP, aby usunąć publiczny z adresu url bez dotykania Laravel domyślnym systemem plików jest ustawienie wirtualnego hosta dla aplikacji, aby to zrobić jsut wykonaj następujące kroki
Otwórz aplikację XAMPP control panel i zatrzymaj Apache. Należy pamiętać, że późne maszyny z systemem Windows mogą uruchamiać go jako usługę, więc zaznacz pole po lewej stronie modułu Apache.
Przejdź do
C:/xampp/apache/conf/extra
lub gdziekolwiek znajdują się Twoje pliki XAMPP.Otwórz plik o nazwie httpd-vhosts.conf z edytorem tekstu.
Wokół linii 19 znajdź #
NameVirtualHost *:80
i odkomentuj lub usuń hash.-
Na samym dole pliku wklej następujący kod:
<VirtualHost *>
ServerAdmin [email protected]
DocumentRoot "C:/xampp/htdocs" # change this line with your htdocs folder
ServerName localhost
ServerAlias localhost
<Directory "C:/xampp/htdocs">
Options Indexes FollowSymLinks Includes ExecCGI
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
- Teraz możesz skopiować i wkleić powyższy kod poniżej, aby dodać swoje wirtualne katalogi hosta. Na przykład pracuję nad stroną o nazwie Eatery Engine, więc poniższy fragment pozwoli mi pracować z sub-domenami na mojej lokalnej instalacji:
<VirtualHost eateryengine.dev>
ServerAdmin [email protected]
DocumentRoot "C:/xampp/htdocs/eateryengine" # change this line with your htdocs folder
ServerName eateryengine.dev
ServerAlias eateryengine.dev
<Directory "C:/xampp/htdocs/eateryengine">
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
- Następnie przejdź do pliku hosta systemu Windows, aby edytować hosty. plik będzie zlokalizowany w
C:/Windows/System32/drivers/etc/hosts
, gdzie hosts jest plikiem. Otwórz go notatnikiem. - poszukaj nazwy # localhost rozdzielczość jest obsługiwana w samym DNS.
127.0.0.1 localhost
Rozdzielczość nazwy Localhost jest obsługiwana w samym DNS.
127.0.0.1 localhost
127.0.0.1 eateryengine.dev #change to match your Virtual Host.
127.0.0.1 demo.eateryengine.dev #manually add new sub-domains.
- Uruchom ponownie Apache i przetestuj wszystko.
Oryginalny artykuł można znaleźć tutaj
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-01-27 09:05:26
Nawet jeśli te rozwiązania wam się sprawdzą, proszę was, abyście tego nie przestrzegali. Oto powód.
Powinieneś skierować swój root serwera Apache do katalogu $LARAVEL_PATH/public
zamiast $LARAVEL_PATH
.
Sens posiadania katalogu sub dla hosta www root zamiast root projektu jest to, że nie przeciekasz żadnego z plików projektu przez serwer WWW.
Mimo że wszystkie pliki PHP mają przyrostek pliku .php
, złośliwy użytkownik może uzyskać dostęp do twojego $LARAVEL_PATH/storage
Katalog i jego podkatalog zawartość, przeczytaj composer.json
lub package.json
aby znaleźć podatne zależności lub odczytać .env
plik itp.
Jeśli korzystasz z hostingu współdzielonego i masz obowiązkowe public_html
, spróbuj zainstalować Laravel poza tym katalogiem public_html
i usunąć public_html (jeśli jest pusty) i zastąpić go dowiązaniem symbolicznym do $LARAVEL_PATH/public
lub jeśli chcesz, aby instancja Laravel była podkatalogiem public_html
, zrób to samo, ale Utwórz dowiązanie symboliczne z $LARAVEL_PATH/public
do public_html/$PROJECT_SUBDIR
.
Ten katalog publiczny jest nie ma powodu, aby uczynić projekt nieco bezpieczniejszym. Rozwiąż rzeczywisty problem i nie próbuj łamać tego prostego, ale przyjemnego dodatku bezpieczeństwa. :)
Mam nadzieję, że to pomoże.Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-09-25 05:23:18
Po pierwsze możesz użyć tego kroku
Dla Laravel 5:
1. Zmień nazwę serwera.php w katalogu głównym Laravel do indeksowania.php
2. skopiuj .plik htaccess z katalogu / public do folderu głównego Laravel.
źródło: https://stackoverflow.com/a/28735930
Po wykonaniu tych kroków musisz zmienić wszystkie css i ścieżkę skryptu, ale będzie to męczące.
Rozwiązanie Proposal: po prostu możesz dokonać drobnych zmian w funkcji helpers::asset
.
Dla tego :
Open
vendor\laravel\framework\src\Illuminate\Foundation\helpers.php
-
Goto line 130
-
Napisz
"public/".$path
zamiast$path
,function asset($path, $secure = null){ return app('url')->asset("public/".$path, $secure); }
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-08-14 21:39:06
Inną metodą, której używam, jest utworzenie dowiązania symbolicznego (w Linuksie, Nie wiem o Win) przy użyciu komendy ln w htdocs lub www tj. ln projectname/public project
Strona jest zatem dostępna za pośrednictwem localhost / project
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-11-15 15:26:57
Czytałem jakiś artykuł wcześniej i działa dobrze, ale naprawdę Nie wiem, czy jest Bezpieczny, czy nie
a. Create new folder local.
b. Move all project into the local folder expect public folder.
c. Move all the content of public folder to project root.
d. Delete the blank public folder
f. Edit the index file.
Edycja indeksu.php
require __DIR__.'/../bootstrap/autoload.php';
$app = require_once __DIR__.'/../bootstrap/app.php';
Do
require __DIR__.'/local/bootstrap/autoload.php';
$app = require_once __DIR__.'/local/bootstrap/app.php';
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-02-10 15:31:52
Nawet jeśli nie zalecam umieszczania Laravela w folderze głównym, są przypadki, w których nie można tego uniknąć; w takich przypadkach powyższe metody nie działają dla zasobów, więc zrobiłem szybką poprawkę zmieniając htaccess: po skopiowaniu serwera.php do indeksu.edycja php .plik htaccess tak:
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews
</IfModule>
RewriteEngine On
### fix file rewrites on root path ###
#select file url
RewriteCond %{REQUEST_URI} ^(.*)$
#if file exists in /public/<filename>
RewriteCond %{DOCUMENT_ROOT}/public/$1 -f
#redirect to /public/<filename>
RewriteRule ^(.*)$ public/$1 [L]
###############
# Redirect Trailing Slashes If Not A Folder...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/$ /$1 [L,R=301]
# Handle Front Controller...
#RewriteCond %{REQUEST_FILENAME} -d # comment this rules or the user will read non-public file and folders!
#RewriteCond %{REQUEST_FILENAME} -f #
RewriteRule ^ index.php [L]
</IfModule>
To była szybka poprawka, którą musiałem zrobić, więc każdy może ją uaktualnić.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-09-13 20:12:59
You can follow only 2 step
1- cut .htaccess from public folder and paste to root(mainFolder)
2- Rename server.php file to index.php AT your root dir. (mainFolder)
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-11-10 13:41:10
Laravel 5.5
Po zainstalowaniu Laravela po raz pierwszy stanąłem przed słynnym "problemem folderów publicznych" i wymyśliłem takie rozwiązanie, które według mojej osobistej opinii jest "czystsze" niż inne, które znalazłem w sieci.
Osiągnięcia
- nie ma
public
słowa w URI - Chroń plik
.env
przed ciekawskimi ludźmi
Wszystko można zrobić po prostu edytując .htaccess
za pomocą mod_rewrite
i czterech prostych Zasady.
Kroki
- Przenieś plik
.htaccess
dopublic/.htaccess
w głównym korzeniu - Edytuj jak poniżej
Wszystko skomentowałem, więc powinno być jasne (mam nadzieję) również dla tych, którzy nigdy nie używali mod_rewrite
(nie żebym był ekspertem, wręcz przeciwnie). Ponadto, aby zrozumieć zasady, musi być jasne, że w Laravel, jeśli Bill łączy się z https://example.com
, https://example.com/index.php
jest naładowany. Ten plik zawiera tylko polecenie header("refresh: 5; https://example.com/public/")
, które wysyła żądanie do https://example.com/public/index.php
. Ta druga index.php
jest odpowiedzialny za załadowanie kontrolera i innych rzeczy.
# IfModule prevents the server error if the app is moved in an environment which doesn’t support mod_rewrite
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews
</IfModule>
RewriteEngine On
# RULES ORIGINALLY IN public/.htaccess ---
# Redirect Trailing Slashes If Not A Folder...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} (.+)/$
RewriteRule ^ %1 [L,R=301]
# Handle Front Controller...
# RewriteCond %{REQUEST_FILENAME} !-d
# RewriteCond %{REQUEST_FILENAME} !-f
# RewriteRule ^ index.php [L]
# Handle Authorization Header
RewriteCond %{HTTP:Authorization} .
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
# --- END
# PERSONAL RULES ---
# All the requests on port 80 are redirected on HTTPS
RewriteCond %{SERVER_PORT} ^80$
RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R,L]
# When .env file is requested, server redirects to 404
RewriteRule ^\.env$ - [R=404,L,NC]
# If the REQUEST_URI is empty (means: http://example.com), it loads /public/index.php
# N.B.: REQUEST_URI is *never* actually empty, it contains a slash that must be set as match as below
# .* means: anything can go here at least 0 times (= accepts any sequence of characters, including an empty string)
RewriteCond %{REQUEST_URI} ^/$
RewriteRule ^(.*) /public/index.php [L]
# If the current request is asking for a REQUEST_FILENAME that:
# a) !== existent directory
# b) !== existent file
# => if URI !== css||js||images/whatever => server loads /public/index.php, which is responsible to load the app and the related controller
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule !^(css|js|images|media)/(.*)$ /public/index.php [L,NC]
# If the current request is asking for a REQUEST_FILENAME that:
# a) !== existent directory
# b) !== existent file
# => if URI == css||js||images[=$1]/whatever[=$2] => server loads the resource at public/$1/$2
# If R flag is added, the server not only loads the resource at public/$1/$2 but redirects to it
# e.g.: bamboo.jpg resides in example.com/public/media/bamboo.jpg
# Client asks for example.com/media/bamboo.jpg
# Without R flag: the URI remains example.com/media/bamboo.jpg and loads the image
# With R flag: the server redirects the client to example.com/public/media/bamboo.jpg and loads the image
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(css|js|images|media)/(.*)$ /public/$1/$2 [L,NC]
# --- END
</IfModule>
Następująca reguła (pierwotnie w public/.htaccess
) może zostać usunięta. Ta sama zasada jest w rzeczywistości wyjaśniona w bardziej szczegółowy sposób w dwóch ostatnich regułach.
# Handle Front Controller...
# RewriteCond %{REQUEST_FILENAME} !-d
# RewriteCond %{REQUEST_FILENAME} !-f
# RewriteRule ^ index.php [L]
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-01-27 22:13:08
Krok 1: serwer.plik php w katalogu głównym zmienia nazwę na indeks.php
Krok 2:
Zrozumiałem .plik htaccess z katalogu publicznego do katalogu głównego
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-03-03 18:17:40
Oto najlepsze i najkrótsze rozwiązanie, które działa dla mnie od maj, 2018 dla Laravel 5.5
1-po prostu Wytnij plik .htaccess
z katalogu /public do katalogu głównego i zastąp jego zawartość następującym kodem:
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews
</IfModule>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/$ /$1 [L,R=301]
RewriteCond %{REQUEST_URI} !(\.css|\.js|\.png|\.jpg|\.gif|robots\.txt)$ [NC]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ server.php [L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !^/public/
RewriteRule ^(css|js|images)/(.*)$ public/$1/$2 [L,NC]
</IfModule>
2-po prostu zapisz plik .htaccess
i to wszystko. Smacznego!
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-05-17 09:46:48