c975l / exceptionchecker-bundle
用于处理Symfony异常的监听器,以便重定向到另一个URL或抛出包含URL列表的GoneException
- dev-main
- v5.4
- v5.3
- v5.2.2
- v5.2.1
- v5.2
- v5.1.1
- v5.1
- v5.0
- 4.x-dev
- v4.1
- v4.0.1
- v4.0
- 3.x-dev
- v3.0.3
- v3.0.2
- v3.0.1
- v3.0
- 2.x-dev
- v2.6
- v2.5.1
- v2.5
- v2.4
- v2.3
- v2.2.1
- v2.2
- v2.1.2
- v2.1.1
- v2.1.0.1
- v2.1
- v2.0.5.1
- v2.0.5
- v2.0.4.1
- v2.0.4
- v2.0.3
- v2.0.2
- v2.0.1
- v2.0
- 1.x-dev
- v1.9.5
- v1.9.4.2
- v1.9.4.1
- v1.9.4
- v1.9.3
- v1.9.2
- v1.9.1
- v1.9
- v1.8.1
- v1.8
- v1.7.2
- v1.7.1
- v1.7
- v1.6.6
- v1.6.5
- v1.6.4
- v1.6.3
- v1.6.2
- v1.6.1.2
- v1.6.1.1
- v1.6.1
- v1.6
- v1.5.1
- v1.5
- v1.4.2
- v1.4.1
- v1.4
- v1.3.3
- v1.3.2
- v1.3.1
- v1.3
- v1.2
- v1.1
- v1.0
- dev-dev
This package is auto-updated.
Last update: 2024-09-15 16:24:38 UTC
README
想象一下... 在您的Symfony网站上有一个错误的请求,导致Monolog发送给您一封电子邮件(操作级别设置为错误)。然后,您只需删除该电子邮件或将操作级别设置为关键(然后丢失所有关于应解决的问题的真实链接问题的警告!
使用 ExceptionCheckerBundle
,排除并重定向到您的首页或您想去的任何地方,一个错误的URL调用就像点击链接一样简单!
电子邮件发送的日志文件中提供了一个链接,该链接将引导您到一个表单,您需要输入您定义的秘密代码(如果您已登录,则不需要秘密代码),然后就可以了!URL被排除并重定向了!您可以使用该表单在提交之前更改类型和数据。
ExceptionCheckerBundle执行以下操作
- 捕获Symfony的异常并检查被调用的URL是否已被删除或重定向,或者是否是排除或忽略的
- 允许使用 通配符 匹配URL
- 搜索和重定向时,对任何类型的字符大小写进行搜索(例如,
https://example.com/YourFILe.html
应该是https://example.com/YourFile.html
) - 提供表单以创建、修改、复制、删除ExceptionCheckers
- 将减少错误触发,因为如果URL已注册,它们将不再是异常(除非是已删除的URL,将抛出GoneHttpException)
- 与您的网页设计集成
- 使用电子邮件发送的日志文件中提供的简单URL调用(+秘密代码或已登录)创建新的ExceptionChecker
此Bundle依赖于使用 jQuery 和 Bootstrap。
Bundle安装
步骤 1:下载Bundle
使用 Composer 安装库
composer require c975l/exceptionchecker-bundle
步骤 2:配置Bundle
检查依赖项的配置
版本2.0+的c975LExceptionCheckerBundle使用 c975L/ConfigBundle 来管理配置参数。使用路由 "/exception-checker/config" 和适当的用户角色来修改它们。
从v1.x升级?请查看 UPGRADE.md
步骤 3:启用路由
然后,通过将它们添加到项目中的 /config/routes.yaml
文件中启用路由
c975_l_exception_checker: resource: "@c975LExceptionCheckerBundle/Controller/" type: annotation prefix: / #Multilingual website use the following #prefix: /{_locale} #defaults: { _locale: '%locale%' } #requirements: # _locale: en|fr|es
步骤 4:创建MySql表
您可以使用 php bin/console make:migration
创建迁移文件,如 Symfony的Doctrine文档 所述,或者使用 /Resources/sql/exception_checker.sql
创建 exception_checker
表。DROP TABLE
被注释以避免意外删除。
作为奖励,sql文件中提供了一些要排除的知名测试链接,在运行sql文件之前,只需取消此部分的注释即可。
步骤 5:与您的网站集成
强烈建议使用 从第三方Bundle覆盖模板的功能,以完全与您的网站集成。
为了实现这个功能,简单地创建以下结构 /templates/bundles/c975LExceptionCheckerBundle/
在您的应用中,然后复制文件 layout.html.twig
到其中,以覆盖现有的Bundle文件,然后应用您需要的更改,例如语言等。
在 layout.html.twig
中,它主要将扩展您的布局并定义特定的变量,即
{% extends 'layout.html.twig' %} {# Defines specific variables #} {% set title = 'ExceptionChecker (' ~ title ~ ')' %} {% block content %} {% block exceptionchecker_content %} {% endblock %} {% endblock %}
如何使用
ExceptionCheckerBundle可以轻松地替换Monolog中放置的excluded_404s
,以避免过多的404错误而变得洪水般,因此您可以从您的config_prod.yml
中删除此选项。
使用路由 exceptionchecker_dashboard
(URL:"/exception-checker/dashboard")来访问仪表板。然后您可以添加URL。
URL的匹配使用LIKE url%
进行,这意味着如果搜索的URL是检查的URL的开始,则会匹配,例如 /wp-login.php
将与 /wp-login
匹配。
您可以使用通配符来匹配一组URL,通过在URL末尾添加*
,例如URL /wp*
将与 /wp-login
、/wp-admin
、/wp-login.php
等匹配。
通过URL调用添加已删除或排除的内容
此Bundle提供了一种易于快速添加已删除|排除的URL的出色功能!
想象一下,您收到一封新邮件(例如来自Monolog),表示“未找到路由...”。要将此URL添加到ExceptionCheckerBundle,只需指示{kind}(已删除或排除)并将请求的{url}复制/粘贴到 http://example.com/ec-add/{kind}?u={url}
(这将使用路由 exceptionchecker_add
)。输入您的密钥(如果您未登录)并添加URL!
例如,http://example.com/ec-add/excluded?u=/js/mage/cookies.js
。
您需要在 /config/config_bundles.yaml
中设置 exceptionCheckerSecret
或使用c975L/ConfigBundle,通过使用路由"/exception-checker/config",以便能够添加URL而无需登录。
已删除的URL
如果找到URL,ExceptionCheckerBundle将抛出GoneHttpException
。
重定向URL
重定向URL可以重定向到Asset
、Route
或Url
。您需要输入以下类型的数据
- Asset:到您的资源的路径,例如
/path_to_asset
- URL:相对或绝对URL,例如
http://example.com
- 无参数的路由:
route_name
- 一个参数的路由:
route_name['param_key' => 'param_value']
- 多个参数的路由:
route_name['param_key' => 'param_value', 'another_param_key' => 'another_param_value']
如果找到URL,ExceptionCheckerBundle将更新事件响应以重定向到定义的URL。
忽略的URL
如果找到URL,ExceptionCheckerBundle将抛出BadRequestHttpException
。
排除的URL
排除的URL是不希望的404 HTTP错误,例如当攻击者扫描您的应用程序的一些知名应用程序路径时(例如 /phpmyadmin)。
如果找到URL,ExceptionCheckerBundle将重定向到配置值 redirectExcluded
中定义的路由。我们建议您重定向到您的主页。
如果这个项目 帮助您减少开发时间,您可以通过顶部的“赞助”按钮来赞助我:)