如果这个问题太简单或问错了地方,请见谅,但我想获取noindex
服务器上除图像文件之外的所有内容。我使用 WordPress 作为无头 CMS,但有些图像直接来自我的服务器,我仍然希望它们被编入索引,而其他所有内容我都不需要被编入索引。
我已经尝试了以下内容,但是我的语法是错误的或者在语义上我违反了一些规则:
#<Files ~ "\.(?!png|jpe?g|gif)$">
# Header set X-Robots-Tag "noindex"
#</Files>
#<FilesMatch ".+\.(gif|jpe?g|png)$">
Header set X-Robots-Tag "noindex"
#</FilesMatch>
按照当前的设置,所有内容都设置为 noindex。如何排除图像格式?
答案1
您的正则表达式匹配以.gif
, .jpg
, .jpeg
&结尾的文件.png
结尾的文件,但您需要一个匹配除它们之外的所有内容的正则表达式。这可以通过负面前瞻正则表达式。摘自 Jan Goyvaerts 的正则表达式信息:
如果你想匹配某个东西,而后面没有其他东西,那么负向前瞻是必不可少的。在解释字符类,本教程解释了为什么不能使用否定字符类来匹配
q
not 后面跟着u
。否定前瞻提供了解决方案:q(?!u)
。否定前瞻构造是一对括号,左括号后跟问号和感叹号。在前瞻中,我们有简单的正则表达式u
。
因此在这里,您需要将 替换u
为您的.*\.(gif|jpe?g|png)$
,结果将类似于:
<FilesMatch "^(?!.*\.(gif|jpe?g|png)$).*$">
Header set X-Robots-Tag "noindex"
</FilesMatch>