問題:
I have an installation of Laravel on Wampserver. The directory is as follows:
C:\wamp\www\laravel
Now URLs are like this:
http://localhost/laravel/public/index.php/home/index
So I used the following htaccess code
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]
To reduce the URL to
http://localhost/laravel/public/home/index
But the laravel framework insists that all application files reside in the public folder.
So I would like to know what I need to add to (or subtract from) the htaccess file so that the URL can look like
http://localhost/laravel/home/index
Thanks
解決:
When testing locally I do one of two things.
-
Create a new .htaccess below the public directory with the following.
<IfModule mod_rewrite.c> RewriteEngine on RewriteRule ^(.*)$ public/$1 [L] </IfModule>
-
Create a new virtual host. With WAMP you can navigate to
C:\wamp\bin\apache\YOUR APACHE VERSION\conf\extra
and find yourhttpd-vhosts.conf
file, in there you can see example virtual hosts. Here's one of mine:<VirtualHost *:80> DocumentRoot "c:/wamp/www/laravel/public" ServerName laravel.dev ServerAlias www.laravel.dev </VirtualHost>
Make sure that your vhosts configuration file is being included. Open up your
httpd.conf
file and search for thevhosts
file, uncomment the include line if it's commented out. Then I open the CLI and enternotepad "C:\windows\system32\drivers\etc\hosts"
which opens up your hosts file. Underneath the item that mentionslocalhost
place your new host. Here's an example.127.0.0.1 laravel.dev
Make sure you restart Apache and bingo, you should be able to navigate to
http://laravel.dev
and you won't have any annoying public directory. This is how I achieve it, as I prefer the nicer looking virtual host rather then a long windedlocalhost
URL.
原文網址 : http://stackoverflow.com/questions/12448912/apache-mod-rewrite-for-laravel
留言列表