私は古典的なLarevel 5プロジェクト構造を持っており、すべてのリクエストをpublic/
にリダイレクトする必要があります。すべてのリクエストをlaravelのpublic/folderにリダイレクトする方法5
私は古典的なホスティング環境にあるので、public/
は私のドキュメントルートのサブフォルダです。
私はそれが.htaccess経由で行うことができると思いますが、まだどのように把握する必要があります。誰でも助けることができますか?
おかげ
私は古典的なLarevel 5プロジェクト構造を持っており、すべてのリクエストをpublic/
にリダイレクトする必要があります。すべてのリクエストをlaravelのpublic/folderにリダイレクトする方法5
私は古典的なホスティング環境にあるので、public/
は私のドキュメントルートのサブフォルダです。
私はそれが.htaccess経由で行うことができると思いますが、まだどのように把握する必要があります。誰でも助けることができますか?
おかげ
2つの解決策があります。
1.あなたは以下のコードを含むindex.phpファイルを追加することができますmod_rewriteを
RewriteEngine on
RewriteCond %{REQUEST_URI} !^public
RewriteRule ^(.*)$ public/$1 [L]
2で.htaccessファイルの使用は、とルートLaravelフォルダ(public_htmlフォルダ)の下に置きます。
<?php
header('Location: public/');
また、これはあなたを助けるかもしれanother answerからの抜粋です。
-
public
サブフォルダへのすべての要求をリダイレクトするために、あなたのpublic_html/.htaccess
を変更します。
# public_html/.htaccess
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews
</IfModule>
RewriteEngine On
# Redirect All Requests To The Subfolder
RewriteRule^/public
</IfModule>
あなたが適切public_html/public/.htaccess
(GitHub)を持っていることを確認してください。
# public_html/public/.htaccess
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews
</IfModule>
RewriteEngine On
# 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^index.php [L]
# Handle Authorization Header
RewriteCond %{HTTP:Authorization}
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
</IfModule>
理想的なシナリオは/home/user/laravel/public
からシンボリックリンクとして/home/user/public
を有することです。
[タグ:.htaccess]、[タグ:laravel]、およびpublicを検索してください:http://stackoverflow.com/search?q=%5B.htaccess%5D+%5Blaravel%5D+public –
ホスティングをよくしてください。非公開のファイルを利用可能にすることは、潜在的なセキュリティホールです。 – ceejayoz