好的,所以我像这样设置.htaccess:
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]+)$ index.php
所以你可以看到我正在解析除索引之外的所有索引,因为我需要“包含”php文件并显示图像。
如果用户输入例如www.site.com/login.php,则会显示登录php页面。
如何阻止访问php页面,还允许“包含”它们?
答案 0 :(得分:1)
将它们移出文档根目录。它们可以安全地包含在那里,但不能通过网络访问。
答案 1 :(得分:0)
如果我理解了这个问题,您是否不允许用户在未登录的情况下转到其他文件?如果是这样,您可以使用php会话来设置他们登录的变量,否则重定向到索引
(如果我理解这个问题)
答案 2 :(得分:0)
如果你想走那条路(外面的webroot建议是正确的!)那么你可以使用这样的规则(见regex negative lookahead):
RewriteRule ^(?!index).+\.php$ - [F]
这样的草率会使index2.php
或indexdir/xyz.php
仍然存在;它只会发现任何不是index
* .php
的内容。如果需要,请务必同时禁止.cgi
或.phtml
或.tpl
。