Apache Document Root с использованием .htaccess - PullRequest
0 голосов
/ 25 августа 2018

У меня есть структура каталогов

mymvc
    |--App
    |--Core
    |--logs
    |--public
             |--index.php
    |--vendor
    |--.htaccess

я хочу, чтобы, если кто-то нажал на мой URL www.example.com/mymvc/, тогда весь запрос должен пройти через public->index.php с использованием файла .htaccess. У меня нет доступа к файлу httpd.conf.

|--public
        |--index.php

Я хочу, чтобы моя папка public была доступна только как корень документа, и запрос проходил через index.php файл внутри папки public. Никто не может получить прямой доступ к каталогам App, Core, logs и т. Д. Означает, что я хочу, чтобы моя общая папка была DOCUMENT ROOT.

1 Ответ

0 голосов
/ 25 августа 2018

Сначала вам нужно создать файл .htaccess в корне проекта.

mymvc / .htaccess

RewriteEngine On
RewriteCond %{REQUEST_URI} !public/
RewriteRule (.*) public/$1 [L]

Затем в файле .htaccess в каталоге public (который будет mymvc / public /.htaccess ), вам необходимо добавить директиву RewriteBase к существующему коду, чтобы она выглядела следующим образом:

mymvc / public / .htaccess

# Remove the question mark from the request but maintain the query string
RewriteEngine On
RewriteBase /mymvc
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-l 
RewriteRule ^(.*)$ index.php?$1 [L,QSA]
...