Як обслуговувати різні robots.txt для http та https на одному сайті?


11

У мене з’явився невеликий веб-сайт, який обслуговує Apache (я не можу поставити Nginx попереду і не змінити Apache ні на що), і він створений для того, щоб обслуговувати той же сайт як через http, так і https (ніяких переадресацій http-> https немає, так далеко, тому і http, і https версії подаються паралельно).

Що мені потрібно, щоб налаштувати один .htaccessі той же URI через http і через https для подання різних текстових файлів?

Мовляв, http://example.com/proto.txtкаже, що "Сайт закінчений http", тоді як він https://example.com/proto.txtби сказав "Сайт обслуговується через https".


У вас немає часу перевірити точний спосіб написання цього запиту (і так просто коментар, а не відповідь), але ще одним варіантом, якщо ви не хочете або не можете змінити основний конфігурацію Apache, є використання. a RewriteRulein your .htaccessз умовою про його подачу через https.
jcaron

@ dcaron, саме це мені потрібно, я просто не можу зрозуміти, як це зробити саме так, і мені потрібна порада або (краще) фрагмент коду, щоб це зробити :)
Кевін М

Ваші http та https-сайти знаходяться в різних <VirtualHost>системах. Тому вам просто потрібно налаштувати інший robots.txt в одному з них. Приблизно так:RewriteRule ^/robots.txt$ /path/to/alternative/robots.txt [L]
петерх

Відповіді:


19

Використовуйте псевдонім

Створіть два файли, robots.txt і robots_http.txt та додайте це до свого http VirtualHost:

Alias "/robots.txt" "/path/to/documentroot/robots_http.txt"

Не можете змінювати налаштування vhost, можна лише редагувати .htaccess, у цьому фокус.
Кевін М

2

Якщо ви не можете або не хочете змінити "головний" конфігурацію Apache, але це потрібно зробити у .htaccessфайлі, ви можете використовувати a RewriteRuleз, RewriteCondщо перевіряє HTTPS.

Щось у напрямку:

RewriteEngine On

RewriteCond %{HTTPS} "on"
RewriteRule robots.txt robots_https.txt [L]

Мабуть, повинен працювати (я не тестував).

Зауважте, що це засновано на самому припиненні HTTPS Apache. Якщо завершення HTTPS робиться на зворотному проксі перед ним, то умова, ймовірно, буде іншою (і залежатиме від конфігурації зворотного проксі-сервера та Apache).

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.