I'm trying to upload multiple Laravel 4 projects to my web server, not my development server. Each laravel 4 app is housed in their own subdirectory. How should my file structure be? I've searched around for a htaccess to remove the /public from the url but i've been unsuccessful. this server is for testing purposes only, it allows others to follow along as the project is being built. I know their are major security issues with leaving the laravel base structure in these directories, but again they are just for testing purposes and when the projects are complete they are removed and placed on their own hosting server. This is my file structure now:
-public_html/ 
main website html files
          -Test Site Subdirectory Folder
          -subdirectoryFolder
            -Store/
             -laravel app 1
      -blog/
        -laravel app 2
      -newspaper
        -laravel app 3
if i install laravel app in each subdirectory folder (www.testsite.com/Store, www.testsite.com/blog, www.testsite.com/newspaper) each application works, however I am trying to remove the public at the end of the url, www.testsite.com/Store/public is what is shown in the browser. Any help with this problem is greatly appreciated. Thank you.
Open your command prompt and go to your drive where your Laravel project exists. Now type http://localhost:8000 in the browser and your blog project will run. Now go to your browser and type http://localhost:8080 in your browser your another project will also run.
Looks like my development structure here is exactly what you're trying to do. So I have this folder structure:
var
|-- www
    |-- Store
    |    |-- app 
    |    |-- bootstrap 
    |    |-- ...
    |-- blog
         |-- app 
         |-- bootstrap 
         |-- ...
This is my VirtualHost file /var/www/Store/vhost.conf:
Alias /Store "/var/www/Store/public"
<Directory /var/www/Store>
  Options Indexes Includes FollowSymLinks MultiViews
  AllowOverride AuthConfig FileInfo Indexes
  Order allow,deny
  Allow from all
</Directory>
Yeah, I put it in my project folder and add an include in /etc/apache2/apache2.conf:
Include /var/www/Store/vhost.conf
This is my .htaccess file:
<IfModule mod_rewrite.c>
    #Options -MultiViews
    RewriteEngine On
    RewriteBase /
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ /Store/index.php/?$1 [L]
</IfModule>
And I just have to hit
 http://server.dev/Store
or
 http://[ipaddress]/Store
To see it.
I've built a small script to do all that for me: https://github.com/antonioribeiro/laravel-installer. It downloads, installs, configures and boot a Laravel application in whatever folder I need to, doing whatever is necessary. Compatible with Debian based distros, like Ubuntu.
EDIT
Note that there are two things that remove the /public and the /index.php from your url:
1) the /Store pointing directly to your public folder:
Alias /Store "/var/www/Store/public"
2) and the rewriting rule to keep your url clean from the index.php:
RewriteRule ^(.*)$ /Store/index.php/?$1 [L]
                        move all content include index.php in each public directory to Store, Blog and Newspaper respectively. and change the following line:
require __DIR__.'/../bootstrap/autoload.php';
$app = require_once __DIR__.'/../bootstrap/start.php';
to
require __DIR__.'/bootstrap/autoload.php';
$app = require_once __DIR__.'/bootstrap/start.php';
good luck.
EDIT: Sorry. You have to edit /bootstrap/paths.php as well, change
 'public' => __DIR__.'/../public',
to
'public' => __DIR__.'/../',
                        If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With