web-dev-qa-db-ja.com

LaravelのApache Mod書き換え

WampserverにLaravelをインストールしています。ディレクトリは次のとおりです。

C:\ wamp\www\laravel

URLは次のようになります。

http://localhost/laravel/public/index.php/home/index

だから私は次のhtaccessコードを使用しました

Options +FollowSymLinks
Options -indexes
DirectoryIndex index.PHP
RewriteEngine on
RewriteCond $1 !^(index\.PHP|images|robots.txt)
RewriteCond %{REQUEST_ FILENAME} !-f
RewriteCond %{REQUEST_ FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L, QSA]

URLを

http://localhost/laravel/public/home/index

しかし、laravelフレームワークは、すべてのアプリケーションファイルがパブリックフォルダに存在することを主張しています。

したがって、htaccessファイルに何を追加するか(またはそこから差し引くか)を知り、URLが次のようになるようにしたいと思います。

http://localhost/laravel/home/index

ありがとう

12
Ody

ローカルでテストするとき、私は2つのことの1つを行います。

  1. 以下を使用して、パブリックディレクトリの下に新しい.htaccessを作成します。

    <IfModule mod_rewrite.c>
        RewriteEngine on
    
        RewriteRule ^(.*)$ public/$1 [L]
    </IfModule>
    
  2. 新しい仮想ホストを作成します。 WAMPを使用すると、C:\wamp\bin\Apache\YOUR Apache VERSION\conf\extraに移動してhttpd-vhosts.confファイルを見つけることができ、そこに仮想ホストの例が表示されます。これは私のものです:

    <VirtualHost *:80>
        DocumentRoot "c:/wamp/www/laravel/public"
        ServerName laravel.dev
        ServerAlias www.laravel.dev
    </VirtualHost>
    

    Vhosts設定ファイルが含まれていることを確認してください。 httpd.confファイルを開いてvhostsファイルを検索し、コメント化されている場合はインクルード行のコメントを外します。次に、CLIを開いてnotepad "C:\windows\system32\drivers\etc\hosts"と入力すると、hostsファイルが開きます。 localhostについて言及しているアイテムの下に、新しいホストを配置します。ここに例があります。

    127.0.0.1  laravel.dev
    

    Apacheとbingoを必ず再起動してください。http://laravel.devに移動できるはずであり、迷惑なパブリックディレクトリはありません。これは私が達成する方法です。長い[localhost] URLではなく、見栄えの良い仮想ホストを好みます。

お役に立てれば。

24
Jason Lewis

ようやく解決方法を見つけました。まず、Wamp AestranトレイメニューからApache httpd.confを開いて編集する必要がありました。私はその行のコメントを外さなければなりませんでした

#Include conf/extra/httpd-vhosts.conf

その後、私はにあるファイルを開いた

<wampdirectory>/bin/Apache/apache.x.y.z/conf/extra/httpd-vhosts.conf

次に、次の行を追加しました。

#
# Use name-based virtual hosting.
#
NameVirtualHost *:80


<VirtualHost *:80>
    DocumentRoot "C:/wamp/www"
    ServerName localhost
    Options Indexes FollowSymLinks
    <Directory "C:/wamp/www">
        AllowOverride All
        Order Deny,Allow
        Deny from all
        Allow from 127.0.0.1
        #If you want to allow access from your internal network
        # For specific ip addresses add one line per ip address
        #Allow from 192.168.0.100
        # For every ip in the subnet, just use the first 3 numbers of the subnet
        #Allow from 192.168.0
    </Directory>
</VirtualHost>

## must be first so the the wamp menu page loads when you use just localhost as the domain name

<VirtualHost *:80>
    DocumentRoot "C:/wamp/sites/laravel/public"
    ServerName laravel.dev
    Options Indexes FollowSymLinks
    <Directory "C:/wamp/sites/laravel/public">
        AllowOverride All
        Order Deny,Allow
        Deny from all
        Allow from 127.0.0.1
        #If you want to allow access from your internal network
        # For specific ip addresses add one line per ip address
        #Allow from 192.168.0.100
        # For every ip in the subnet, just use the first 3 numbers of the subnet
        #Allow from 192.168.0
    </Directory>
</VirtualHost>

次のステップは、C:\ windows\system32\drivers\etcにあるhostsファイルを編集することでした。

と追加されました

127.0.0.1 laravel.dev

その後、Wampを再起動しました。私を正しい方向に向けてくれた皆さんに感謝します。心から感謝する

4
Ody

私のローカル開発環境でこれを機能させる最も簡単な方法は、次のことです。

(C:\ WAMPにWAMPがインストールされていると仮定)

次のフォルダを作成します。

c:\wamp\www\laravel

laravelをダウンロードして、上記のディレクトリにコンテンツを配置します。hxxp:// localhost/laravel/publicにアクセスして開始画面を表示できれば、正しく実行できたことがわかります。ただし、これは十分ではありません。http://localhost/laravelに移動して、その画面を取得します

したがって、次のことを行います。

以下を含むテキストファイルを作成します。

Alias /laravel "c:/wamp/www/laravel/public" 

<Directory "c:/wamp/www/laravel/public">
    Options Indexes FollowSymLinks MultiViews
    AllowOverride all
    Allow from all
</Directory>

このファイルをlaravel.confとしてc:\ wamp\aliasディレクトリに保存します。

最後に、wampserverを再起動します。

これでhttp://localhost/laravelにサーフィンできるようになります。

上記は厳密にローカル開発環境用であることに注意してください。

1

コードとパブリックフォルダーが同じ場所にあることになり、ほとんどの人はこれをお勧めしません。ローカルWebサーバーを利用することをお勧めします。

どうしてmysite.dev 指し示す laravel/publicディレクトリなので、http://mysite.dev毎回、より簡潔で短いURLも使用していますか?

0
Jürgen Paul

WAMPとLaravelの初心者として、私は少し苦労しましたが、私の仮想ホストをWIN7PRO 64ビットボックスで動作させることができました。ファイルの最後のWAMPSERVER/Apache/hppd.confに、次のように追加しました。

NameVirtualHost *:80

<VirtualHost *:80>
 DocumentRoot C:/webapp/public
 ServerName webapp
 <Directory C:/webapp/public >
   Options Indexes FollowSymLinks MultiViews
   AllowOverride all
   Order Deny,Allow
   Allow from All
 </Directory> 
</VirtualHost> 

<VirtualHost *:80>
 DocumentRoot C:/wamp/www
 ServerName localhost
</VirtualHost> 

そして私は追加しました:

127.0.0.1 webapp

hostsファイルに。 (Web上の多くの投稿が示唆しているように、vhostsファイルの編集に成功したことはありません。)

これらの変更により、ブラウザでLaravelテストアプリにアクセスできます。

http://webapp
(and also, via just http://127.0.0.1)

そして、他のすべてのサイトにアクセスするには、

http://localhost/devsite/whatever..
0
Ralph Frost