我有一个网站女巫加密,我不能在内部代码。所以我知道我们可以通过mod_rewrite重定向或抛出404错误。
此外,我的网址是西里尔字母,因此Chrome浏览器看起来像
www.example.com/Нешто_два
但是当我复制/粘贴它时看起来像
www.example.com/%D0%9F%D0%BE%D0%B1%D0%B0%D1%80%D0%B0%D1%98%D1%82%D0%B5_%D0%A2%D0%B5%D1%81%D1%82_%D0%92%D0%BE%D0%B7%D0%B5%D1%9A%D0%B5
我尝试使用mod_rewrite来禁用该网址上的帖子请求,但该网址仍接受帖子请求。通过http工具测试。
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_URI} !^.*/tiny_mce/.*$
RewriteCond %{REQUEST_URI} \.(php|html?)$ [OR]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^.]*)\.?(.*)$ index.php?q_url=$1 [QSA]
RewriteCond %{REQUEST_METHOD} POST
RewriteCond %{REQUEST_URI} ^Нешто_два$
RewriteRule ^ - [L,R=404]
</IfModule>
答案 0 :(得分:1)
.htaccess文件需要以转义形式提供网址,因此您应该将显示的版本转义为“%D0%9F%D0%BE%D0%B1%D0%B0%”而不是“Нешто_два” D1%80%D0%B0%D1%98%D1%82%D0%B5_%D0%A2%D0%B5%D1%81%D1%82_%D0%92%D0%BE%D0%B7%D0% B5%D1%9A%D0%B5"
看起来有点长,所以可能还有其他一些东西。我试着转换字符串并提出:
“\ xD09D \ xD0B5 \ xD188 \ xD182 \ xD0BE_ \ xD0B4 \ xD0B2 \ xD0B0”
转义版本可以放在RewriteCond中:
RewriteCond %{REQUEST_URI} ^%D0%9F%D0%BE%D0%B1%D0%B0%D1%80%D0%B0%D1%98%D1%82%D0%B5_%D0%A2%D0%B5%D1%81%D1%82_%D0%92%D0%BE%D0%B7%D0%B5%D1%9A%D0%B5$
答案 1 :(得分:0)
要限制http post,您需要在VirtualHost或Directory块中使用“Limit或LimitExcept指令”(如果您没有将其中一个放入其中,那么它将不起作用!)。 例如,以下内容仅允许在
下的http网站中获取http<Directory>
........
<LimitExcept GET>
Require valid-user
</LimitExcept>
如果您使用.htaccess文件,只需粘贴此部分而不使用Direcotry块
<LimitExcept GET>
Require valid-user
</LimitExcept>