HTTP_REFERER中应该包含(不应该包含)哪些字符(或应将其转义)?

时间:2018-12-22 20:41:57

标签: mod-rewrite escaping character delimiter http-referer

我想用一些新的引荐重写来更新.htaccess文件,并在GitHub https://gist.github.com/raniajal/e6733427207de2677616#file-htaccess-txt-L72上找到了一个不错的列表。

我的混合格式是我在其他地方找到的带有转义连字符和非转义连字符的格式; .com,.org,.net,.ga,.ru等结尾处的斜杠,以及一些没有结尾斜杠的斜杠,例如:

RewriteCond %{HTTP_REFERER} ^http://.*\.social\-buttons\.com/ [NC,OR]
RewriteCond %{HTTP_REFERER} free-share-buttons\.com [NC,OR]
RewriteCond %{HTTP_REFERER} ^http://.*yapoga\.com/ [NC,OR]
RewriteCond %{HTTP_REFERER} ^https?://([^.]+\.)*seoanalyses\.com [NC,OR]
RewriteCond %{HTTP_REFERER} ^http://.*savetubevideo\.com/ [NC,OR]
RewriteCond %{HTTP_REFERER} ^http://.*semalt\.com/ [NC,OR]
RewriteCond %{HTTP_REFERER} 4webmasters\.org/ [NC,OR]
RewriteCond %{HTTP_REFERER} 7makemoneyonline\.com/ [NC,OR]
RewriteCond %{HTTP_REFERER} 100dollars-seo\.com/ [NC,OR]
RewriteCond %{HTTP_REFERER} addons\.mozilla\.org [NC,OR]
RewriteCond %{HTTP_REFERER} o\-o\-6\-o\-o\.com [NC,OR]
RewriteCond %{HTTP_REFERER} youporn-forum\.ga/ [NC,OR]
RewriteCond %{HTTP_REFERER} непереводимая\.рф/ [NC]

我注意到GitHub中的列表没有结尾斜杠,并且更新了表示法以允许使用https,而我现有的没有,因此我更新了列表以使用它。例如:

RewriteCond %{HTTP_REFERER} ^https?:\/\/([^.]+\.)*o-o-6-o-o\.com [NC,OR]
RewriteCond %{HTTP_REFERER} ^https?:\/\/([^.]+\.)*slftsdybbg\.ru [NC,OR]
RewriteCond %{HTTP_REFERER} ^https?:\/\/([^.]+\.)*social-buttons\.com [NC,OR]
RewriteCond %{HTTP_REFERER} ^https?:\/\/([^.]+\.)*socialseet\.ru [NC,OR]
RewriteCond %{HTTP_REFERER} ^https?:\/\/([^.]+\.)*trafficmonetize\.org [NC,OR]
RewriteCond %{HTTP_REFERER} ^https?:\/\/([^.]+\.)*video--production\.com [NC,OR]
RewriteCond %{HTTP_REFERER} ^https?:\/\/([^.]+\.)*videos-for-your-business\.com [NC,OR]
RewriteCond %{HTTP_REFERER} ^https?:\/\/([^.]+\.)*vodkoved\.ru [NC,OR]
RewriteCond %{HTTP_REFERER} ^https?:\/\/([^.]+\.)*www1\.social-buttons\.com [NC,OR]
RewriteCond %{HTTP_REFERER} ^https?:\/\/([^.]+\.)*ykecwqlixx\.ru [NC,OR]
RewriteCond %{HTTP_REFERER} ^https?:\/\/([^.]+\.)*youporn-forum\.ga [NC,OR]
RewriteCond %{HTTP_REFERER} forum\.topic65882328\.darodar\.com [NC,OR]
RewriteCond %{HTTP_REFERER} ^https?:\/\/([^.]+\.)*непереводимая\.рф [NC]

但是现在我收到500服务器错误,并且错误日志显示

RewriteCond:错误的标志分隔符

文件为UTF-8,我看不到任何多余的空格。我在做什么错了?

1 个答案:

答案 0 :(得分:0)

此问题已解决。这两个示例的结果似乎没有差异。我重新阅读了HTTP_REFERER项目列表,并发现了两个导致问题的原因。 列表中间的一个只有[NC],因此我将其更改为[NC,OR]。 一个人错过了[NC,OR],所以我加了。

在很长的列表中,很容易跳过看起来相同的内容-需要更好的校对。 现在,.htaccess文件可以使用了。