16

だから、私はWindowsでxamppを実行しています。現在、laravel フレームワークに慣れようとしています。今、それが指摘したとき。ルート内でlaravelアプリケーション/ウェブサイトに直接アクセスするにはどうすればよいですか?

例、

  • 私が今やっていることは次のとおりです: localhost/laravel/public/about (aboutページを見るため)
  • 私がやりたいことは: localhost/laravel/about

これに対する良い解決策はありますか?laravelのルートフォルダに.htacessファイルを追加する必要がありますか? (公共のものではありません)。

助言がありますか?

4

20 に答える 20

11

これが私がやった方法です。

  1. Windows ホスト ファイルを編集します - C:\Windows\System32\drivers\etc\hosts
  2. Apache vhosts ファイルを編集します - Drive-Letter:\xampp\apache\conf\extra\httpd-vhosts.conf
  3. htaccess ファイルを laravel/public フォルダーに追加します (まだそこにない場合)。
  4. Xampp Apache サーバーを再起動します。

ユーザー アカウント制御が原因で、Hosts ファイルを編集しようとすると、Windows が実際の PITA になる可能性があります。私はあらゆる種類の小さな趣味のプロジェクトに取り組んでいるので、このファイルを常に編集する必要があるため、これを行っています。

  • PSパッドをインストールします。ロードは非常に高速で、ファイルをブックマークして簡単にロード/編集できます。上記の 2 つのファイルを読み込んで、ワークスペースを新しいプロジェクトとして保存すると、Sublime Text もうまく機能します。
  • PSPad (またはその他のエディター) プログラムのショートカットを右クリックし、[管理者として実行] を選択します。これを行わないと、変更を Hosts ファイルに保存できません。
  • エディターで Windows ホスト ファイルを開きます。このファイルにはファイル拡張子がないため、ファイルを表示するには、[ファイルを開く] ダイアログで [すべてのファイル] を選択する必要があります。
  • ファイルの最後に、これを追加します。

    127.0.0.1  laravel.dev
    

    これにより、ブラウザーのアドレス バーに laravel.dev と入力するたびに、Web ブラウザーが localhost を指すように Windows に指示されます。

  • ファイルを保存します。
  • xampp Apache httpd-vhosts.conf ファイルを開きます。
  • ファイルの最後に、これを追加します: (xampp が D: ドライブのルートにインストールされていると想定しています)

    <VirtualHost *:80>
      ServerName laravel.dev
      DocumentRoot "D:/xampp/htdocs/laravel/public"
      <Directory "D:/xampp/htdocs/laravel/public">
      </Directory>
    </VirtualHost>
    
  • htaccess ファイルを laravel/public フォルダーに追加します (まだそこにない場合)。L4 に付属するデフォルトの htaccess ファイルは次のようになっていると思います。

    Options -MultiViews
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [L]
    
  • xampp Apache サーバーを再起動します。
  • Web ブラウザを開き、アドレス バーに入力します -http://laravel.dev
  • これにより、「public」フォルダー内の index.php ファイルに移動します。
  • Aboutページにたどり着くには、アドレスは次のようになると思いますhttp://laravel.dev/about
于 2013-03-26T21:58:15.790 に答える
10

最良のアプローチ: public を削除することはお勧めしません。代わりに、ローカル コンピューターで public ディレクトリを指す仮想ホストを作成し、リモート ホスティングで public を public_html に変更し、ドメインをこのディレクトリに向けます。理由は、あなたのlaravelコード全体があなたのパブリックディレクトリまで1レベル下がっているので安全です:)

方法 1: server.php の名前を index.php に変更するだけで動作します

方法 2:

これが私のディレクトリ構造です。

/laravel/
... app
... bootstrap
... public
... etc

これらの簡単な手順に従ってください

  1. すべてのファイルを public ディレクトリからルート /laravel/ に移動します
  2. 現在、パブリックディレクトリは必要ないため、必要に応じて今すぐ削除できます
  3. index.php を開き、次の置換を行います

require DIR .'/../bootstrap/autoload.php';

require DIR .'/bootstrap/autoload.php';

$app = require_once DIR .'/../bootstrap/start.php';

$app = require_once DIR .'/bootstrap/start.php';

  1. ここで、bootstrap/paths.php を開き、パブリック ディレクトリ パスを変更します。

'パブリック' => DIR .'/../パブリック',

'公開' => DIR .'/..',

それだけです。 http:// localhost/laravel/ を試してください

于 2014-03-21T04:54:38.120 に答える
10

/publicフォルダーの内容を 1 つ下のレベルに移動します。

index.php のインクルード行を更新して、正しい場所を指すようにする必要があります。(レベルが下がっている場合は、「../」を削除してください)。

于 2013-05-15T15:25:06.167 に答える
9

apache のドキュメント ルートを laravel フォルダーではなく public フォルダーに設定します。これは最も単純な手法であり、本番環境に推奨されます。

于 2014-12-31T04:09:39.277 に答える
3

簡単なステップで、私はlaravel 5で.htaccessをlaravelフォルダーにこのように作成しました

<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>

次に、名前を変更server.phpしますindex.php

それがうまくいくこと

または、ローカル開発を行っているだけの場合

このコマンドを実行しますphp artisan serve

ローカルサーバーを起動します localhost:8000(ポートは異なる場合があります)

于 2015-06-23T07:42:41.423 に答える
3

.htaccess に次のコードを追加します (存在しない場合は、laravel ルート ディレクトリに .htaccess を作成します)。

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteRule ^(.*)$ public/$1 [L]
</IfModule>

ソース: http://tutsnare.com/remove-public-from-url-laravel/

ソースでは、同じことを行う別のメソッドも取得します。

更新: ソース URL で説明するディレクトリ構造を変更することをお勧めします。

于 2015-02-13T07:04:49.847 に答える
3

次のコードを htaccess ファイルに追加します。それはあなたを助けるかもしれません。

<IfModule mod_rewrite.c>
RewriteEngine On

RewriteRule ^(.*)$ public/$1 [L]
</IfModule>
于 2014-04-09T10:47:12.723 に答える
2

シンボリックリンクを使用するか、httpd.confファイルを編集できます。

別の同様の質問に対する私の答えを確認してください。お役に立てば幸いです。

于 2013-03-23T11:54:21.463 に答える
2

私はlaravel localyで動作するgeart flowを見つけました。

できることは、xampp を少し設定することです。xamp の httpd.conf ファイルで、ドキュメント DocumentRoot<Directory>. ルート ディレクトリを自分の laravel パブリック フォルダーに変更し、Apache を再起動します。localhostと入力するだけでプロジェクトにアクセスできるようになったときから。必要に応じて、ホスト ファイルを変更し、ローカル dns を書き換えることができます。たとえば、127.0.0.1example.laravel.comで、実際の URL でプロジェクトにアクセスできます。少し複雑に見えるかもしれませんが、そうではありません。

それに代わるものはphp artisan serve. 異なるポートでサーバーを起動し、ホスト ファイルを書き換えることができます。

vagrantや などの機能を追加して、ワークフローをさらに改善することができますngrok。ライブ プレゼンテーション用にプロジェクトを共有できます (ここでは速度が問題になる場合があります)。

于 2015-11-27T09:12:22.740 に答える
2

.htaccessファイルを構成するストレスを経験したくない場合は、次のようにして PHP ビルトイン サーバーを使用できます。

  1. コマンド ユーティリティから、cd でlaravel\public
  2. 実行:php -S localhost:8000

次の場所に移動して、Web サイトにアクセスできるようになったら、次のようにします。

http:://localhost:8000

追加せずに動作しますpublic

詳細については、公式マニュアルを参照してください: http://php.net/manual/en/features.commandline.webserver.php

于 2015-06-23T09:00:54.103 に答える
1

larvel4 アプリでパブリック セグメントを削除する必要がある

Laravel 4 では、アプリ コードを Web ルートよりも 1 レベル上に配置する必要があります。これにより、一部の開発者は共有ホスティングに固執し、このようなセットアップが許可されないという問題が発生します。実際、それを回避するのは本当に簡単です。一部の L4 固有のパッケージでは、このようなセットアップで問題が発生する可能性があると読みましたが、どのパッケージでもそのようなことはまだ経験していません。

まず、L4 を好きな場所にインストールします。ベースの L4 アプリを最新の状態に保つことについて Niall が書いた記事が気に入ったので、ぜひチェックしてみてください: Laravel 4 のインストールと更新

この例では、レポを単純に複製するだけで十分です (composer がグローバルにインストールされていると仮定します。そうでない場合は、http://getcomposer.org/にアクセスしてください)。

git clone -b develop git://github.com/laravel/laravel.git app_name

php コンポーザーのインストール

L4 は現時点ではまだベータ版であるため、develop ブランチを複製していることに注意してください。

したがって、URL から「パブリック」部分を削除するには、すべてのファイルとフォルダーをパブリックからアプリのルートに移動するだけで、次のようなフォルダー構造になります。

/app
/bootstrap
/packages (copied from /public)
/vendor
.htaccess (copied from /public)
artisan
composer.json
favicon.ico (copied from /public)
index.php (copied from /public)
robots.txt (copied from /public)
server.php

ここで、index.php のパスを編集する必要があります。

require __DIR__.'/bootstrap/autoload.php';

$app = require_once __DIR__.'/bootstrap/start.php';

そして、 /bootstrap/paths.php ファイルに public dir を設定するだけです:

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

これは私の提案です

于 2015-12-14T11:32:43.517 に答える
1

の名前を変更しserver.phpてからコピーするindex.phpのが正しい方法です。アプリをオンラインで送信する場合は、DocumentRoot を public のパスに変更するだけです。.htaccess/public

于 2016-01-26T05:58:11.003 に答える
0

URL から public を削除する場合は、まず index.php と .htaccess ファイルを public フォルダーから laravel のルートに移動し、index.php ファイルを変更します。

require DIR.'/../bootstrap/autoload.php'; $app = require_once DIR.'/../bootstrap/start.php';

DIR が必要です。'/bootstrap/autoload.php'; $app = require_once DIR.'/bootstrap/start.php';

そしてプログラムを実行します

于 2016-06-30T06:53:30.570 に答える