Apache文档根目录使用.htaccess

3
我有一个目录结构。
mymvc
    |--App
    |--Core
    |--logs
    |--public
             |--index.php
    |--vendor
    |--.htaccess

我想要的是,如果有人访问我的URL www.example.com/mymvc/,那么所有请求都必须通过.htaccess文件,经过public->index.php处理。我无法访问httpd.conf文件。
|--public
        |--index.php

我希望我的public文件夹只能作为文档根目录访问,并且通过public文件夹内的index.php文件进行请求传递。没有人可以直接访问AppCorelogs等目录。这意味着我希望我的公共文件夹成为DOCUMENT ROOT
1个回答

4

首先,您需要在项目的根目录中创建一个.htaccess文件。

mymvc/.htaccess

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

然后,在public目录中的.htaccess文件(即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]

你能解释一下为什么需要两个文件的详细信息吗? - PhoneixS

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接