0

Usually, I create a sub-domain and change the Document Root to the public folder like public_html/subdomain/public so when I visit https://subdomain.example.com it runs from the public folder without needing to add the public path in the URL.

Now I have a Laravel project on a sub-folder on a sub-domain public_html/subdomain/subfolder and I want to run the project from the public folder to avoid this https://subdomain.example.com/subfolder/public.

The website is hosted on a VPS server so I have access to everything.

How to make the project on the subfolder on the subdomain runs from the public folder without adding /public to the URL?

I tried this .htaccess:

Options -MultiViews
RewriteEngine On
RewriteCond %{REQUEST_URI} !^/public/
RewriteRule ^(.*)$ /public/$1 [L,QSA]

But it appends /public to the URL.

mm1234
  • 23
  • 5
  • That rule alone would not do that. Where is this .htaccess file? What other directives do you have? What other .htaccess files do you have? You appear to be rewritting to the wrong URL… what’s happened to the `/subfolder`? – MrWhite May 06 '23 at 17:09
  • is this the answer to your question? -> https://stackoverflow.com/a/10642616/9739794 – com.on.ist May 07 '23 at 01:24
  • @MrWhite That .htaccess file is located in the subfolder directory `public_html/subdomain/subfolder/.htaccess` – mm1234 May 07 '23 at 08:58

1 Answers1

0

Move all the files which are in the public_html/subdomain/subfolder except public folder And make a new folder at public_html/subdomain/main which is

main

and move all the files to the main folder after that move all files and folders from public to public_html/subdomain/subfolder and edit your index.php which will be looks like this

<?php

/**
 * Laravel - A PHP Framework For Web Artisans
 *
 * @package  Laravel
 * @author   Taylor Otwell <taylor@laravel.com>
 */

define('LARAVEL_START', microtime(true));

/*
|--------------------------------------------------------------------------
| Register The Auto Loader
|--------------------------------------------------------------------------
|
| Composer provides a convenient, automatically generated class loader for
| our application. We just need to utilize it! We'll simply require it
| into the script here so that we don't have to worry about manual
| loading any of our classes later on. It feels great to relax.
|
*/

require __DIR__.'/../main/vendor/autoload.php';  // previous line require __DIR__.'/../vendor/autoload.php';

/*
|--------------------------------------------------------------------------
| Turn On The Lights
|--------------------------------------------------------------------------
|
| We need to illuminate PHP development, so let us turn on the lights.
| This bootstraps the framework and gets it ready for use, then it
| will load up this application so that we can run it and send
| the responses back to the browser and delight our users.
|
*/

$app = require_once __DIR__.'/../main/bootstrap/app.php'; // add main here also

/*
|--------------------------------------------------------------------------
| Run The Application
|--------------------------------------------------------------------------
|
| Once we have the application, we can handle the incoming request
| through the kernel, and send the associated response back to
| the client's browser allowing them to enjoy the creative
| and wonderful application we have prepared for them.
|
*/

$kernel = $app->make(Illuminate\Contracts\Http\Kernel::class);

$response = $kernel->handle(
    $request = Illuminate\Http\Request::capture()
);

$response->send();

$kernel->terminate($request, $response);

You just need to edit 2 lines of code for that to work require DIR.'/../vendor/autoload.php'; to require DIR.'/../main/vendor/autoload.php'; And 2nd line is from $app = require_once DIR.'/../bootstrap/app.php'; to $app = require_once DIR.'/../main/bootstrap/app.php'; And your folder structure should look like this public_html/subdomain

├── subfolder
│   ├── index.php
│   ├── .htaccess
├── main
│   ├── app
│   ├── bootstrap
│   ├── config
│   ├── database
│   ├── resources
│   ├── routes
│   ├── storage
│   ├── tests
│   ├── vendor
│   ├── .env
│   ├── artisan
│   ├── composer.json
Md Naseem
  • 46
  • 4