在我的网站(WP)上,有些php可以直接访问,这是其中一个例子/ wp-settings.php
由于:
警告:require(ABSPATHwp-includes / load.php):无法打开流:第21行/home1/hidden/public_html/wp-settings.php中没有此类文件或目录
警告:require(ABSPATHwp-includes / load.php):无法打开流:第21行/home1/hidden/public_html/wp-settings.php中没有此类文件或目录
致命错误:require():无法打开所需的' ABSPATHwp-includes / load.php'第21行/home1/hidden/public_html/wp-settings.php中的(include_path ='。:/ opt / php54 / lib / php')
我已在.htaccess
<Files *.php>
Order Deny,Allow
Deny from all
Allow from 127.0.0.1
</Files>
<Files index.php>
Order Allow,Deny
Allow from all
</Files>
阻止直接访问但允许从服务器访问,但这导致我的仪表板上出现错误,许多控件无法访问。
我也尝试过类似的其他东西,但没有一个工作
我不会专门阻止直接访问wp-settings.php
,因为我确定还有其他php
个文件需要阻止直接访问。
我的问题,如何阻止直接访问php,我的服务器能够访问php和所有WP仪表板控件正常运行
由于
答案 0 :(得分:0)
在文件wp-settings.php
<?php if ( ! defined('ABSPATH')) exit('No direct script access allowed');
限制对wp-includes
# Block wp-includes folder and files
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^wp-admin/includes/ - [F,L]
RewriteRule !^wp-includes/ - [S=3]
RewriteRule ^wp-includes/[^/]+\.php$ - [F,L]
RewriteRule ^wp-includes/js/tinymce/langs/.+\.php - [F,L]
RewriteRule ^wp-includes/theme-compat/ - [F,L]
</IfModule>
答案 1 :(得分:0)
我将此添加到我的.htaccess:
<Files error_log>
Deny from all
</Files>
<Files wp-settings.php>
Deny from all
</Files>
<Files wp-config.php>
Deny from all
</Files>
<Files wp-config-sample.php>
Deny from all
</Files>
<Files wp-load.php>
Deny from all
</Files>
<Files wp-blog-header.php>
Deny from all
</Files>
回答这个问题的唯一方法就是简单地枚举根目录中包含文件的所有文件(肯定应该在wp-includes中!)。
然后是在wp-includes / .htaccess文件中放入什么的问题。我还在努力。它应该只是拒绝访问所有内容的情况,但我怀疑它不是那么简单 - 如果我没记错的话,这样就会杀死编辑器。