我有一个目录结构
mymvc
|--App
|--Core
|--logs
|--public
|--index.php
|--vendor
|--.htaccess
我想要的是,如果有人点击我的网址www.example.com/mymvc/,则所有请求都必须使用.htaccess文件通过public-> index.php.我无权访问httpd.conf文件.
|--public
|--index.php
我希望我的公用文件夹只能作为文档根目录访问,并要求通过公用文件夹中的index.php文件进行传递.没有人可以直接访问App,Core,log等目录.意味着我希望我的公用文件夹成为DOCUMENT ROOT.
解决方法:
首先,您需要在项目的根目录中创建一个.htaccess文件.
mymvc / .htaccess
RewriteEngine On
RewriteCond %{REQUEST_URI} !public/
RewriteRule (.*) public/$1 [L]
然后,在公共目录(该文件为mymvc / public / .htaccess)中的.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]