简体   繁体   中英

How to run subfolder with laravel in php rootfolder?

I have a project running under php, but I have a third party subfolder(download folder) that I want to add into the current project.

Meaning, root folder = testlaravel =>www.testlaravel.com with sub folder = testlaravel/download => www.testlaravel.com/download

Is there anyway I can do this?

Are you using Apache or Nginx ? If Apache, you need to config your vhost file to serve Laravel from a sub-folder. Particularly, you need to configure that when testlaravel.com/download URI is requested, it should be served using /home/testlaravel/download/public directory (basically different root/home location).
You also need to use mod_rewrite to rewrite your URL requests to the sub-folder be served from index.php from above location (and also prettify URLs).

Similarly, your configuration in vhost for your main website will be different (so there will be 2 configurations, one for your main website and one for laravel requests)


The above should work just fine since its done same way in Nginx, for which I have included a full example of how its conf file should look

Here is how I setup-ed my location block which is working for me perfectly:

location ^~ /facebookschedule {  
alias /home/netcans/facebookschedule/public;  
try_files $uri $uri/ @foobar;  

location ~ \.php {  
fastcgi_pass unix:/var/run/php5-fpm.sock;  
fastcgi_split_path_info ^(.+\.php)(.*)$;  
include /etc/nginx/fastcgi_params;  
fastcgi_param SCRIPT_FILENAME /var/wwww/facebookschedule/public/index.php;  
}  
}  

location @foobar {  
rewrite /facebookschedule/(.*)$ /facebookschedule/index.php?/$1 last;  
}  

Source: http://shubhank.gaur.io/setup-laravel-5-in-subfolder-with-nginx/

I am using the following configuration, which is simpler than most other published solutions, and which does not require any paths/folders to be hard-coded.

We simply prefix all requests with public/ and then remove it from SCRIPT_NAME so that the application can autodetect its environment correctly.

location ~ /myproject/(.*) {
    rewrite /myproject(.*) /myproject/public/$1 break;
    try_files $uri /myproject/public/index.php$is_args$args;

    location ~ /index\.php$ {
        include /etc/nginx/fastcgi.conf;
        fastcgi_pass  unix:/var/run/php-fpm/php-fpm.sock;
        fastcgi_param SCRIPT_NAME /myproject/index.php;
    }
}

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM