由于 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 状态码。以下是我的步骤。

  1. 我创建了一个新的 WebApp 并部署了一些文件,包括 robots.txtindex.php(只有一个代码 phpinfo();)和 web.config你的内容。然后访问https://<my webapp name>.azurewebsites.net/robots.txt得到phpinfo()200响应如下图

  2. 我看到 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>
    
  3. 所以我更改了上面的规则,将 txt 附加到 pattern 尾部,如下所示,然后我查看了 robots.txt url 的工作原理.

    <add input="{REQUEST_FILENAME}" pattern="css|js|jpg|jpeg|png|gif|ico|htm|html|txt" negate="true" />
    

希望对您有所帮助。