Как при переходе на https сделать доступным robots.txt и sitemap.xml по обеим протоколам? Есть решение

здравствуйте. Прошу помощи в настройке .htaccess.

Как при переходе на https сделать доступными robots.txt и sitemap.xml и по https, и по http, при этом сделав 301 редирект с http на https для всех остальных запросов?

На данный момент htaccess выглядит так: 



RewriteEngine On
RewriteBase /
RewriteCond %{HTTP:SSL} !=1 [NC]
RewriteCond %{REQUEST_URI} !^/robots\.txt$
RewriteCond %{REQUEST_URI} !^/index\.php$
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

<ifModule mod_rewrite.c>
    RewriteEngine On
    # Uncomment the following line, if you are having trouble
     #RewriteBase /

	RewriteCond %{REQUEST_URI} !\.(js|css|jpg|jpeg|gif|png)$ [or]
    RewriteCond %{REQUEST_URI} apple-touch-icon\.png$
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ index.php [L,QSA]

</ifModule>

В таком вариант robots.txt доступен по обоим протоколам, а при обращении к Sitemap.xml - пустой экран. Другие варианты давали бесконечную переадресацию

2 ответа

  • 1
    name name 9 ноября 2018 00:16 # Решение

    Проблема решилась добавлением вот такого условия:

    RewriteCond %{THE_REQUEST} !/*.xml [NC]

    в итоге код для редиректа вот такой: 

    RewriteEngine On
    RewriteBase /
    RewriteCond %{HTTP:SSL} !=1 [NC]
    RewriteCond %{REQUEST_URI} !^/robots\.txt$
    RewriteCond %{REQUEST_URI} !^/index\.php$
    RewriteCond %{THE_REQUEST} !/*.xml [NC]
    RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]


  • 1
    Алексей Webasyst 8 ноября 2018 23:28 #

    Вы можете убрать редиректы в .htacсess и включить их в приложении Сайт или в настройках нужного поселения в структуре.

    • +1
      name name name name 8 ноября 2018 23:34 #

      а как это сделать, чтобы все запросы, кроме роботс и сайтмап редиректирилось на https? Не вручную же все вбивать?

    • +1
      name name name name 9 ноября 2018 00:00 #

      добавил в корень сайта файл oldsitemap.xml, добавил его в исключения в htaccess и все-равно в итоге по получаю пустой экран/

      Думаю, корень проблемы в том, как webasyst обрабатывает запросы к *.xml. Где это происходит?

Добавить ответ

Чтобы добавить комментарий, зарегистрируйтесь или войдите