4

申し訳ありませんが、私の htdocs ルートが間違っていて、変更できません。/publicそのため、フォルダー内で機能させる必要があります。

通常の Laravel .htaccess ファイルを次のように書き換えて使用します。

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]

開くhttp://kemtime2_neu.pr.domain.de/publicと、リダイレクトされますhttp://kemtime2_neu.pr.domain.de/public/http://kemtime2_neu.pr.domain.de/public/login

どうすればこれを修正できますか?

私はそれを機能させたいと思っていますhttp://kemtime2_neu.pr.domain.de/が、それを機能させるhttp://kemtime2_neu.pr.domain.de/public/ことは問題ありません。

4

2 に答える 2

6

私はこの投稿の3つのソリューションを使用し、正常に動作します。

http://web.archive.org/web/20130320184846/http://forums.laravel.io/viewtopic.php?id=1258

解決策1-シンボリックリンクを使用した代替インストールパス。

これは推奨されるソリューションであり、一般的には万能の良いアイデアです。アプリケーションをpublic_html/に関係のないフォルダーにインストールしてから、パブリックフォルダーをpublic_html/パスにシンボリックリンクすることができます。

例えば:

アプリケーションを/home/applications/mysite.comにインストールします

DocumentRootが/var/www/vhosts/mysite.com/httpdocsを指していると想像してください

mysite.com vhostsフォルダーからhttpdocsフォルダーを削除し、2つをシンボリックリンクで接続します。ln-s /home/applications/mysite.com/public /var/www/vhosts/mysite.com/httpdocs

解決策2-mod_rewriteを使用した.htaccess

このソリューションを使用すると、Laravelをパブリックフォルダーにドロップし、.htaccessファイルを使用してリクエストをパブリックフォルダーにリダイレクトできます。このソリューションは、アプリケーションとコアシステムコードを公的にアクセス可能なフォルダーに配置します。これは、PHPフレームワークで行うことをお勧めするものではありません。

ステップ1.Laravelをドキュメントルートフォルダーに配置します。

手順2.次の.htaccessファイルをドキュメントのルートフォルダに配置します。

<IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteCond %{REQUEST_URI} !^public
    RewriteRule ^(.*)$ public/$1 [L]
</IfModule>

ステップ3.application/ config /application.phpで「url」構成を手動で設定していることを確認してください。そうしないと、Laravelが誤ったURLを生成します。各環境に正しいapplication.url構成があることを確認してください。環境固有の構成の詳細については、http://laravel.com/docs/install#environmentsを参照してください。

解決策3-パブリックフォルダをインストールルートにマージします

このソリューションは、アプリケーションとコアシステムコードを公的にアクセス可能なフォルダーに配置します。これは、PHPフレームワークで行うことをお勧めするものではありません。

public /フォルダーの内容をLaravelインストールフォルダーにコピーし、index.phpファイルのこの行を次のように変更します。

require '../paths.php';

require 'paths.php';

バンドル、ライブラリ、またはその他の種類のサードパーティコードは、一般にアクセスできるように設計されていない場合があることに注意してください。

注:bundles/ディレクトリとpublic/bundles/ディレクトリが競合するようになることに注意することも重要です。このアプローチを使用する場合、バンドルが何を公開したいかを正確に知らずに、職人のbundle:publishタスクを使用したくない場合があります。

于 2013-03-19T12:09:14.640 に答える
6

部分的に解決しました。/publicの代わりにルートに .htaccess がある場合

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /public/index.php/$1 [L]

開くことはできますhttp://kemtime2_neu.pr.domain.de/loginが、画像と css がまだ間違っています。にファイルが存在するかどうかを最初に確認する必要があります/publicこれは新しい質問だと思います。

于 2013-03-19T12:44:01.650 に答える