我将dev.example.com和www.example.com托管在不同的子域中.我希望抓取工具删除dev
子域的所有记录,但保持它们www
.我使用git来存储两者的代码,所以理想情况下我希望两个站点都使用相同的robots.txt文件.
是否可以使用一个robots.txt文件并将其从dev
子域中排除?
某些服务器具有robots.txt文件,以阻止网络抓取工具抓取其网站.有没有办法让网络抓取工具忽略robots.txt文件?我正在使用Mechanize for python.
Facebook的网络浏览机器人是否尊重文件中的Crawl-delay:
指令robots.txt
?
我们可以告诉机器人抓取或不抓取在robot.txt中抓取我们的网站.另一方面,我们可以控制Google网站管理员的抓取速度(Google机器人抓取网站的程度).我想知道是否可以通过robots.txt限制抓取工具的活动
我的意思是接受机器人抓取页面,但限制他们的存在时间或页面或大小!
我正在运行一个允许用户创建子域的站点.我想通过站点地图将这些用户子域名提交给搜索引擎.但是,根据站点地图协议(和Google网站站长工具),单个站点地图只能包含来自单个主机的网址.
什么是最好的方法?
目前我有以下结构:
-
User-agent: *
Allow: /
Sitemap: http://example.com/sitemap-subdomain.xml
Run Code Online (Sandbox Code Playgroud)
-
我认为此方法符合站点地图协议,但是,Google网站管理员工具会为子域站点地图提供错误:"不允许使用此网址.此站点地图不允许使用此网址."
我还检查了其他网站是如何做到的.例如,Eventbrite生成包含来自多个子域的URL的站点地图(例如,参见http://www.eventbrite.com/events01.xml.gz).但是,这不符合站点地图协议.
您为站点地图建议采用什么方法?
我有一个项目位于主域下面的文件夹中,我无法访问域本身的根目录.
http://mydomain.com/myproject/
Run Code Online (Sandbox Code Playgroud)
我想禁止对子文件夹"forbidden"进行索引
http://mydomain.com/myproject/forbidden/
Run Code Online (Sandbox Code Playgroud)
我可以简单地将robots.txt放在myproject文件夹中吗?即使root中没有robots.txt,它会被读取吗?
禁止禁用文件夹的正确语法是什么?
User-agent: *
Disallow: /forbidden/
Run Code Online (Sandbox Code Playgroud)
要么
User-agent: *
Disallow: forbidden/
Run Code Online (Sandbox Code Playgroud) 我正在使用Angular2@2.1.2创建一个网站.我使用Webpack默认设置(作为依赖项).
这是我的package.json
"dependencies": {
"@angular/common": "2.1.2",
"@angular/compiler": "2.1.2",
"@angular/core": "2.1.2",
"@angular/forms": "2.1.2",
"@angular/http": "2.1.2",
"@angular/platform-browser": "2.1.2",
"@angular/platform-browser-dynamic": "2.1.2",
"@angular/platform-server": "2.1.2",
"@angular/router": "3.1.2",
"@ngrx/core": "1.2.0",
"@ngrx/effects": "2.0.0",
"@ngrx/store": "2.2.1",
"angular2-toaster": "^1.0.1",
"awesome-typescript-loader": "2.2.1",
"bootstrap": "3.3.7",
"bootstrap-select": "1.11.2",
"eonasdan-bootstrap-datetimepicker": "4.17.42",
"es5-shim": "4.5.9",
"intl": "1.2.5",
"jquery": "3.1.0",
"moment": "2.15.1",
"ng2-modal": "0.0.21",
"ng2-pagination": "^0.4.1",
"ngrx-store-logger": "^0.1.7",
"npm": "3.9.3",
"reflect-metadata": "0.1.8",
"rxjs": "5.0.0-beta.12",
"ts-helpers": "1.1.1",
"zone.js": "0.6.25"
},
"devDependencies": {
"@types/jasmine": "2.2.34",
"angular-cli": "1.0.0-beta.19-3",
"codelyzer": "~0.0.26",
"core-js": "2.4.1",
"jasmine-core": "2.5.0",
"jasmine-spec-reporter": "2.7.0",
"karma": "1.3.0",
"karma-chrome-launcher": …
Run Code Online (Sandbox Code Playgroud) 出于某种原因,我想通过PHP脚本提供我的robots.txt.我已经设置了apache,以便robots.txt文件请求(实际上所有文件请求)都来自单个PHP脚本.
我用来渲染robots.txt的代码是:
echo "User-agent: wget\n";
echo "Disallow: /\n";
Run Code Online (Sandbox Code Playgroud)
但是,它不处理换行符.如何正确地服务robots.txt,以便搜索引擎(或任何客户端)正确看到它?我是否必须为txt文件发送一些特殊标题?
现在我有以下代码:
header("Content-Type: text/plain");
echo "User-agent: wget\n";
echo "Disallow: /\n";
Run Code Online (Sandbox Code Playgroud)
它仍然不显示换行符(请参阅http://sarcastic-quotes.com/robots.txt).
有人提到它很好,没有在浏览器中显示.只是好奇这个如何正确显示:http://en.wikipedia.org/robots.txt
我通过wget下载了我的和维基百科,看到这个:
$ file en.wikipedia.org/robots.txt
en.wikipedia.org/robots.txt: UTF-8 Unicode English text
$ file sarcastic-quotes.com/robots.txt
sarcastic-quotes.com/robots.txt: ASCII text
Run Code Online (Sandbox Code Playgroud)
主要问题是我没有设置标题.但是,还有另一个内部错误,它将Content-Type设为html.(这是因为我的请求实际上是通过内部代理提供的,但这是另一个问题).
浏览器不显示换行符的一些注释只是半正确的 - >如果content-type是text/plain,现代浏览器会正确显示换行符.我选择的答案与真正的问题非常匹配,并且没有上述略有误导性的误解:).谢谢大家的帮助和时间!
谢谢
J.P
我想将这些资源的请求重定向到我的CDN.有没有理由不这样做?
我有一个SPA使用,create-react-app
并希望有一个robots.txt像这样:
http://example.com/robots.txt
Run Code Online (Sandbox Code Playgroud)
我在这个页面上看到:
您需要确保将服务器配置为在配置为从目录提供服务后捕获任何URL.
但对于firebase托管,我不知道该怎么做.
robots.txt firebase single-page-application reactjs create-react-app