Cur*_*ous 4 php apache .htaccess mod-rewrite
我有一个目录结构
mymvc
|--App
|--Core
|--logs
|--public
|--index.php
|--vendor
|--.htaccess
Run Code Online (Sandbox Code Playgroud)
我想要的是,如果有人点击我的网址,www.example.com/mymvc/那么所有请求都必须通过public->index.php 使用.htaccess文件。我无权访问 httpd.conf 文件。
|--public
|--index.php
Run Code Online (Sandbox Code Playgroud)
我希望我的public文件夹只能作为文档根目录访问,并请求通过文件夹内的index.php文件public。没有人可以直接访问App,Core,logs等目录。意味着我希望我的公用文件夹是DOCUMENT ROOT.
首先,您需要.htaccess在项目的根目录中创建一个文件。
mymvc/.htaccess
RewriteEngine On
RewriteCond %{REQUEST_URI} !public/
RewriteRule (.*) public/$1 [L]
Run Code Online (Sandbox Code Playgroud)
然后,在目录中的.htaccess文件public(即mymvc/public/.htaccess)中,您需要向RewriteBase现有代码添加一个指令,如下所示:
mymvc/公共/.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]
Run Code Online (Sandbox Code Playgroud)