Apache Mod重写Laravel

Ody*_*Ody 12 php apache laravel

我在Wampserver上安装了Laravel.目录如下:

C:\ WAMP\WWW\laravel

现在网址是这样的:

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]
Run Code Online (Sandbox Code Playgroud)

要将URL减少到

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

但laravel框架坚持所有应用程序文件都驻留在公用文件夹中.

所以我想知道我需要添加(或减去)htaccess文件,以便URL看起来像

http://localhost/laravel/home/index

谢谢

Jas*_*wis 25

在本地测试时,我会做两件事之一.

  1. 使用以下内容在公共目录下创建一个新的.htaccess.

    <IfModule mod_rewrite.c>
        RewriteEngine on
    
        RewriteRule ^(.*)$ public/$1 [L]
    </IfModule>
    
    Run Code Online (Sandbox Code Playgroud)
  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>
    
    Run Code Online (Sandbox Code Playgroud)

    确保包含vhosts配置文件.打开httpd.conf文件并搜索该vhosts文件,如果注释掉,则取消注释包含行.然后我打开CLI并输入notepad "C:\windows\system32\drivers\etc\hosts"打开您的hosts文件.提及localhost放置新主机的项目下方.这是一个例子.

    127.0.0.1  laravel.dev
    
    Run Code Online (Sandbox Code Playgroud)

    确保你重启Apache和宾果游戏,你应该能够导航到http://laravel.dev你不会有任何讨厌的公共目录.这就是我实现它的方式,因为我更喜欢看起来更漂亮的虚拟主机而不是长链接的localhostURL.

希望这可以帮助.