Apache Mod重写Laravel

我在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] 

减lessurl到

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

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

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

http://localhost/laravel/home/index

谢谢

当在本地测试时,我会做两件事情之一。

  1. 使用以下命令在公共目录下创建一个新的.htaccess。

     <Ifmodulee mod_rewrite.c> RewriteEngine on RewriteRule ^(.*)$ public/$1 [L] </Ifmodulee> 
  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> 

    确保您的虚拟主机配置文件正在被包括在内。 打开你的httpd.conf文件并搜索vhosts文件,取消注释包含行,如果它被注释掉。 然后我打开CLI并输入notepad "C:\windows\system32\drivers\etc\hosts"打开你的主机文件。 在提到localhost的项下面放置你的新主机。 这是一个例子。

     127.0.0.1 laravel.dev 

    确保你重新启动Apache和宾果游戏,你应该能够导航到http://laravel.dev ,你将不会有任何恼人的公共目录。 这是我如何实现它,因为我更喜欢更好看的虚拟主机,而不是一个漫长的localhost URL。

希望这可以帮助。

我终于想出了一条出路。 首先,我必须打开并编辑我的Apache httpd.conf,从Wamp Aestran托盘菜单中选择它。 我不得不取消注释

#Include conf/extra/httpd-vhosts.conf

之后,我打开了位于的文件

<wampdirectory>/bin/apache/apache.xyz/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中编辑我的主机文件

并补充说

127.0.0.1 laravel.dev

然后重新启动Wamp,它工作。 感谢你们把我指向正确的方向。 真的很欣赏它

我在本地开发环境中工作的最简单的方法是执行以下操作:

(假设你已经在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> 

将该文件保存为c:\ wamp \ alias目录中的laravel.conf

最后,重新启动你的wampserver。

你现在应该可以浏览到http://localhost/laravel

请注意,以上内容严格适用于本地开发环境。

你会得到你的代码和公共文件夹在同一地方,这是大多数人不建议。 我建议你利用使用本地Web服务器。

为什么不把mysite.dev指向laravel/public目录,所以你可以每次使用http://mysite.dev ,你也有更laravel/public URL呢?

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

到主机文件。 (我从来没有成功编辑过虚拟主机文件,因为网络上的许多帖子都提到过。)

这些更改允许我通过浏览器访问我的Laravel测试应用程序

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

并通过以下方式访问我的所有其他网站:

 http://localhost/devsite/whatever..