我正在运行Prestashop网站(从错误的Joomla移动)并且有很多可疑/恶意/恶意软件尝试检查我的页面安全性 - >页面未找到统计页面。有很多Joomla和Wordpress文件/目录尝试。
我有像
这样的手动重定向器<?php
$redir_maps = array(
'/administrator' => '/',
'/wp-admin' => '/',
);
if(in_array(@$_SERVER['REQUEST_URI'], array_keys($redir_maps))){
header("HTTP/1.1 301 Moved Permanently");
header("Location: ".$redir_maps[@$_SERVER['REQUEST_URI']]);
exit;
}
?>
它的工作非常好! 但是如何扩展它以捕获所有变量
/index.php?option=com_的 ???某种正则表达式?(Joomla Component) 防止这种链接并将其重定向到/:
/index.php?option=com_jce&task=plugin&plugin=imgmanager&file=imgmanager&method=form&cid=20&6bc427c8a7981f4fe1f5ac65c1246b5f=cf6dd3cf1923c950586d0dd595c8e20b
答案 0 :(得分:0)
您没有使用SEF链接?那会损害你在搜索引擎中的排名。您当前的重定向脚本无法捕获所有访问管理页面的尝试 - 例如in_array()
赢得了匹配/administrator/index.php
,因为匹配必须准确($_SERVER['REQUEST_URI']
返回路径,查询和片段。)
您可以使用JURI::getQuery()
获取选项查询,然后只需测试它是否与您网站上的某个组件匹配即可。或者在您.htaccess
中使用正则表达式,如果您正在使用Apache,它会在您的系统上使用较少的资源通过网络服务器执行此操作,因此恶意方不会耗尽您的资源。
答案 1 :(得分:0)
将此添加到.htaccess,在#~~开始之前~~不要删除此评论
RewriteEngine on
RewriteRule ^wp-admin/.+$ index.php [L,R=301]
RewriteRule ^administrator/.+$ index.php [L,R=301]
RewriteRule ^.+\?.*option=com_.+$ index.php [L,R=301]