Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache 防止无效URL参数出现错误403_Apache_.htaccess_Http_Url_Http Status Code 403 - Fatal编程技术网

Apache 防止无效URL参数出现错误403

Apache 防止无效URL参数出现错误403,apache,.htaccess,http,url,http-status-code-403,Apache,.htaccess,Http,Url,Http Status Code 403,我有指向我的网站的链接,这些链接是由用户点击的,而不是直接在我的控制下进行更改或正确编码 URL看起来像这样 http://mywebsite.com?email=%%username@company.com 我希望此URL不被禁止,并防止出现错误403 在其他问题上,人们说“是mod_security的10_asl_rules.conf造成了这个错误。”我搜索了它,在PHP信息页面上找不到mod_security 下面是我的.htaccess文件的外观 <IfModule mod_rew

我有指向我的网站的链接,这些链接是由用户点击的,而不是直接在我的控制下进行更改或正确编码

URL看起来像这样

http://mywebsite.com?email=%%username@company.com

我希望此URL不被禁止,并防止出现错误
403

在其他问题上,人们说“是mod_security的10_asl_rules.conf造成了这个错误。”我搜索了它,在PHP信息页面上找不到mod_security

下面是我的.htaccess文件的外观

<IfModule mod_rewrite.c>
    Options +FollowSymlinks -MultiViews
    RewriteEngine on
    RewriteBase /

    RewriteCond %{QUERY_STRING} (.+)=[%25][%25](.+)
    RewriteRule (.*) $1/?%1=%2 [R=301,L,NC]

    ErrorDocument 403 "We are working on it..."

</IfModule>

选项+以下符号链接-多视图
重新启动发动机
重写基/
重写cond%{QUERY_STRING}(.+)=[%25][%25](.+)
重写规则(.*)$1/?%1=%2[R=301,L,NC]
错误文档403“我们正在处理它…”

您可以在htaccess文件中尝试类似的操作(测试正常):

重定向
http://mywebsite.com?email=%%username@company.com

到<代码>http://mywebsite.com/?email=username@例如,company.com

在进行任何测试之前,请确保已清除浏览器缓存


您可以将标志更改为[R,L,NC]进行生产。

您知道这些URL应该是什么样子的吗?或者只是尝试删除完整的查询字符串(所有在
之后的内容?
)就可以了?我想删除%%,或者至少打开页面,并使用JavaScriptOK清除值。您必须检查查询字符串(
%{QUERY\u STRING}
)对于.htaccess或Apache配置文件中的那些字符,并在目标URL中生成一个不包含这些字符的新查询字符串。对于
http://dev4tech.site/templates/template6/?email=%%someemailss@mail.com
但是它会重定向此
http://dev4tech.site/templates/template6/?email=%25%25someemailss@mail.com
http://dev4tech.site/templates/template6//?email=someemailss@mail.com
在应用这些规则之前要拒绝的无效URL接缝+重定向后,我在URL中得到了额外的
/
。@Nadeem:你说这对我不起作用吗
http://dev4tech.site/templates/template6/?email=%%someemailss@mail.com
但在你的下一篇评论中,它似乎起了作用。不明白。现在,根据您的示例,传入URL中的查询前面没有斜杠“/”,这就是它被复制的原因。通常,这不应该是一个问题,也绝对不应该产生错误。我将修改我的答案。不过,这需要一些时间。同时,也许你可以发布整个.htaccess文件来隐藏相关信息,了解它很重要。如果URL有%25%25,它可以工作,如果有%%
Options +FollowSymlinks -MultiViews
RewriteEngine on
RewriteCond %{QUERY_STRING} ^/?(.+)=[%25][%25](.+)
RewriteRule (.*) $1/?%1=%2 [R=301,L,NC]