【问题标题】:How to disallow all files & folder and allow for some in robots.txt?如何禁止所有文件和文件夹并允许 robots.txt 中的一些文件和文件夹?
【发布时间】:2020-10-03 04:37:13
【问题描述】:

我需要robots.txt 推荐下一个:

  1. 禁止所有文件和文件夹
  2. 只允许index.php & msub.php

我已经编辑了msub.php 的链接,我从.htaccess 做了RewriteReuls,如下所示:

domain.com/p/subject122

domain.com/p/subject104

所以我想让链接显示在搜索引擎中,就像:domain.com/p/subject122。

我该怎么做?

我已经尝试过这个命令,但效果不佳。链接:domain.com/p/subject104 没有出现在搜索引擎中

User-agent: *
Disallow: /
Allow: /index.php
Allow: /msub.php

.htaccess

Options -Indexes

RewriteEngine On
RewriteBase /

RewriteCond %{SERVER_PORT} 80 
RewriteRule ^(.*)$ https://www.example.com/$1 [R,L]

RewriteCond %{REQUEST_URI} ^/404/$
RewriteRule ^(.*)$ /error.html [L]

RewriteRule home /index.php 
RewriteRule p/(.*)$ msub.php?page=$1

【问题讨论】:

  • 您能否出示完整的 .htaccess 文件
  • 是的,当然.......
  • 这个问题似乎是题外话,因为它是关于 SEO 这在 Stack Overflow 上是题外话。请阅读"Which SEO questions should be closed as non-programming/non-admin?",以更好地了解何时可以在此处提出 SEO 问题(大多数情况不可以)以及您可以在哪里获得帮助。

标签: .htaccess robots.txt


【解决方案1】:

robots.txt 应该包含爬虫可以看到的 URI,无论您在内部如何处理它们。所以你的robots.txt 应该有:

User-agent: *
Disallow: /
Allow: /p/subject122
Allow: /p/subject104

您的 .htaccess 也可以重构:

Options -Indexes

RewriteEngine On
RewriteBase /

RewriteCond %{SERVER_PORT} 80 
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,NE,L]

RewriteRule ^404/?$$ error.html [L,NC]

RewriteRule ^home/?$ index.php [L,NC]

RewriteRule p/(.*)$ msub.php?page=$1 [L,NC,QSA]

【讨论】:

  • 这行不通,因为 URL 是动态的而不是静态的,我无法手动将 URL 添加到 robots.txt..
  • 在那种情况下,为什么还要为机器人文件烦恼。现代搜索引擎足够聪明,只缓存有效的网址
  • 是的,你是对的.. 搜索引擎可以捕捉到它,但是主机中的其他私人文件呢!?它也会显示在搜索中,这就是问题
  • 不,私人文件永远不会被搜索引擎缓存。请了解网络爬虫的工作原理。他们将跟随您网站根页面的链接。如果您发布例如整个网站中有 5 个链接,然后搜索引擎将只缓存这 5 个 URL。
  • 我有 .txt 文件,但我没有在我的网站或任何其他网页中发布或使用它……我震惊的是它可以在谷歌搜索结果中找到!谷歌搜索引擎是如何抓到的?那些文件是私人的,我不想分享它!
猜你喜欢
  • 2017-08-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-04-15
  • 1970-01-01
  • 2016-09-23
  • 1970-01-01
  • 2013-01-26
相关资源
最近更新 更多