由于 Web.config 个文件,Robots.txt 个文件未显示
Robots.txt file not showing due to Web.config file
我正在尝试使用直接 link (https://www.example.com/robots.txt) 访问我的 robots.txt 文件,但是我一直收到 404 错误。我怀疑它与我的 web.config 文件有关,但我不完全确定。
这是我的 web.config 文件
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<!-- BEGIN rule TAG FOR HTTPS REDIRECT -->
<rule name="Force HTTPS" enabled="true">
<match url="(.*)" ignoreCase="false" />
<conditions>
<add input="{HTTPS}" pattern="off" />
</conditions>
<action type="Redirect" url="https://{HTTP_HOST}/{R:1}" appendQueryString="true" redirectType="Permanent" />
</rule>
<!-- END rule TAG FOR HTTPS REDIRECT -->
<rule name="Rewrite to index.php">
<match url="index.php|images|test.php" />
<action type="None" />
</rule>
<rule name="Rewrite CI Index">
<match url=".*" />
<conditions>
<add input="{REQUEST_FILENAME}" pattern="css|js|jpg|jpeg|png|gif|ico|htm|html" negate="true" />
</conditions>
<action type="Rewrite" url="index.php/{R:0}" />
</rule>
</rules>
</rewrite>
</system.webServer>
我的 robots.txt 文件只是
用户代理:*
不允许:
站点地图:https://www.example.com/sitemap.xml
我在我的网络应用程序的根目录中添加了 robots.txt 文件。关于为什么它没有出现的任何想法。
谢谢
我试图重现你的问题,但失败了,结果不是你得到的 404
状态码。以下是我的步骤。
我创建了一个新的 WebApp 并部署了一些文件,包括 robots.txt
、index.php
(只有一个代码 phpinfo();
)和 web.config
你的内容。然后访问https://<my webapp name>.azurewebsites.net/robots.txt
得到phpinfo()
的200
响应如下图
我看到 robots.txt
url 已被您下面的第三条规则重写为重定向到 index.php
.
<rule name="Rewrite CI Index">
<match url=".*" />
<conditions>
<add input="{REQUEST_FILENAME}" pattern="css|js|jpg|jpeg|png|gif|ico|htm|html" negate="true" />
</conditions>
<action type="Rewrite" url="index.php/{R:0}" />
</rule>
所以我更改了上面的规则,将 txt
附加到 pattern
尾部,如下所示,然后我查看了 robots.txt
url 的工作原理.
<add input="{REQUEST_FILENAME}" pattern="css|js|jpg|jpeg|png|gif|ico|htm|html|txt" negate="true" />
希望对您有所帮助。
我正在尝试使用直接 link (https://www.example.com/robots.txt) 访问我的 robots.txt 文件,但是我一直收到 404 错误。我怀疑它与我的 web.config 文件有关,但我不完全确定。
这是我的 web.config 文件
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<!-- BEGIN rule TAG FOR HTTPS REDIRECT -->
<rule name="Force HTTPS" enabled="true">
<match url="(.*)" ignoreCase="false" />
<conditions>
<add input="{HTTPS}" pattern="off" />
</conditions>
<action type="Redirect" url="https://{HTTP_HOST}/{R:1}" appendQueryString="true" redirectType="Permanent" />
</rule>
<!-- END rule TAG FOR HTTPS REDIRECT -->
<rule name="Rewrite to index.php">
<match url="index.php|images|test.php" />
<action type="None" />
</rule>
<rule name="Rewrite CI Index">
<match url=".*" />
<conditions>
<add input="{REQUEST_FILENAME}" pattern="css|js|jpg|jpeg|png|gif|ico|htm|html" negate="true" />
</conditions>
<action type="Rewrite" url="index.php/{R:0}" />
</rule>
</rules>
</rewrite>
</system.webServer>
我的 robots.txt 文件只是
用户代理:* 不允许: 站点地图:https://www.example.com/sitemap.xml
我在我的网络应用程序的根目录中添加了 robots.txt 文件。关于为什么它没有出现的任何想法。
谢谢
我试图重现你的问题,但失败了,结果不是你得到的 404
状态码。以下是我的步骤。
我创建了一个新的 WebApp 并部署了一些文件,包括
robots.txt
、index.php
(只有一个代码phpinfo();
)和web.config
你的内容。然后访问https://<my webapp name>.azurewebsites.net/robots.txt
得到phpinfo()
的200
响应如下图我看到
robots.txt
url 已被您下面的第三条规则重写为重定向到index.php
.<rule name="Rewrite CI Index"> <match url=".*" /> <conditions> <add input="{REQUEST_FILENAME}" pattern="css|js|jpg|jpeg|png|gif|ico|htm|html" negate="true" /> </conditions> <action type="Rewrite" url="index.php/{R:0}" /> </rule>
所以我更改了上面的规则,将
txt
附加到pattern
尾部,如下所示,然后我查看了robots.txt
url 的工作原理.<add input="{REQUEST_FILENAME}" pattern="css|js|jpg|jpeg|png|gif|ico|htm|html|txt" negate="true" />
希望对您有所帮助。