嗯,首先请原谅我的初学英语..
我想更多地了解PHP MVC应用程序中的安全性
我创建了自己的MVC,但我还没有完成它 我的应用程序目录通过带子元素的URL访问公开。
如何让访客隐藏此内容?
以下是我正在尝试
Apache mod_rewrite?
我仍然不知道在每个文件夹中将它作为空的index.html,如框架Codeigniter?
用什么东西来表示? 和, ......怎么做?
修改
关于rewrite_rules
以下是我的.htaccess
Options -MultiViews RewriteEngine On RewriteBase /ligia #RewriteCond %{REQUEST_FILENAME} -f [OR] #RewriteCond %{REQUEST_FILENAME} -l [OR] #RewriteCond %{REQUEST_FILENAME} -d #RewriteRule .+ - #I know, it is commented RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-l RewriteRule "^(.+)$" "index.php?uri=$1" [QSA,L]
但我担心这是否是保存我的MVC应用程序的最佳方式 安全!?
我需要帮助!
答案 0 :(得分:1)
首先确保您的.htaccess
文件位于您的文档根目录(与index.php
相同的位置),否则它只会影响它所在的子文件夹(和其中的任何子文件夹 - 递归地。)
接下来对您的规则稍作修改,使其看起来像:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php?path=$1 [NC,L,QSA]
目前你只是匹配。这是任何字符的一个实例,至少需要。*来匹配任何字符的任意数量的实例。
如果您希望将整个shebang安装在子目录中,例如/mvc/
或/framework/
,则最简单的方法是稍微更改重写规则以将其考虑在内。< / p>
RewriteRule ^(.*)$ /mvc/index.php?path=$1 [NC,L,QSA]
确保index.php位于该文件夹中,而.htaccess文件位于文档根目录中。
NC =无大小写(不区分大小写,因为模式中没有字符,所以没有必要)
L =最后(在重写之后它会停止重写,所以请确保它是重写列表中的最后一件事)
QSA =查询字符串Apend,以防万一你想要保留并传递给index.php的类似= like = penguins。