Файл Robots.txt не отображается из-за файла Web.config - PullRequest
0 голосов
/ 12 марта 2019

Я пытаюсь получить доступ к своему файлу robots.txt по прямой ссылке (https://www.example.com/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 просто

Пользователь-агент: * Disallow: Карта сайта: https://www.example.com/sitemap.xml

Я добавил файл robots.txt в корневой каталог моего веб-приложения. Есть идеи, почему он не появляется.

Спасибо

1 Ответ

1 голос
/ 12 марта 2019

Я пытался воспроизвести вашу проблему, но не смог получить результат, не такой как ваш, чтобы получить код состояния 404. Вот мои шаги, как показано ниже.

  1. Я создал новое WebApp и развернул несколько файлов, включая robots.txt, index.php (только один код phpinfo();) и web.config с таким же вашим содержимым. Затем я набрал https://<my webapp name>.azurewebsites.net/robots.txt, чтобы получить 200 ответ phpinfo(), как показано на рисунке ниже.

    enter image description here

  2. Я вижу, * URL-адрес robots.txt был переписан третьим правилом ниже вашего, чтобы перенаправить на 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, как показано ниже, затем я проверяю действующий URL robots.txt.

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

    enter image description here

Надеюсь, это поможет.

...