Поле NAME не подробно описано в разделе 4.1.3 RFC 1035.
I хочу понять это поле (программно) для типа сообщения ANSWER, и я искал эти ресурсы (таблицу) для этого.
Я следил:
Я что-то пропустил?
псевдокод:
ВОПРОС:
byte[]{
0x00,0x00,
0x01,0x00,
0x00,0x02,
0x00,0x00,
0x00,0x00,
0x00,0x00,
0x03,0x77,0x77,0x77,
0x12,0x74,0x68,0x65,0x5f,0x70,0x61,0x63,0x6b,0x65,0x74,0x67,0x65,0x65,0x6b,
0x03,0x63,0x6f,0x6d,
0x00,
0x00,0x01,
0x00,0x01,
0x13,0x74,0x74,0x68,0x65,0x5f,0x70,0x61,0x63,0x6b,0x65,0x74,0x67,0x65,0x65,0x6b,
0x03,0x63,0x6f,0x6d,
0x00,
0x00,0x01,
0x00,0x01
}
ОТВЕТ: // имя_сервера бит
Просто не знаю, как автоматически добавлять имя сервера
Вам не нужно . Фактически, вы не можете «автоматически» добавить servername с помощью директивы mod_alias Redirect
. Всегда безопаснее включать жестко запрограммированный абсолютный URL-адрес для цели, однако URL-адрес, относящийся к корневому каталогу, все равно должен работать нормально на одном каноническом хосте, что, по-видимому, имеет место в данном случае. (?) Если это не работает, то, возможно, это указывает на некоторую другую неправильную конфигурацию сервера?
В качестве альтернативы вы можете попробовать перенаправление mod_rewrite (если включено) (с помощью директивы RewriteRule
). Это обеспечивает переменные для имени сервера, хотя, опять же, в этом нет необходимости.
Просто обратите внимание, что вы не должны смешивать перенаправления mod_alias и mod_rewrite. Смешивание директив может привести к неожиданным конфликтам, поскольку два модуля работают в разное время, независимо от их очевидного порядка.
Попробуйте следующее перенаправление mod_rewrite в .htaccess вместо Redirect
в вашем вопросе. 1213] Чтобы специально использовать «переменные» в подстановке RewriteRule
:
RewriteRule ^index\.html http://%{SERVER_NAME}/default.php [R=302,L]
Обратите внимание, что это должно происходить после любого канонического перенаправления.
Вместо SERVER_NAME
вы можете использовать ] HTTP_HOST
для ссылки на имя хоста, используемое в запросе. Хотя, в зависимости от конфигурации вашего сервера, они, вероятно, относятся к одному и тому же (то есть к имени хоста, используемому в запросе).
Это, очевидно, жестко кодирует протокол, например. http
(или https
). У вас действительно есть запросы со смешанным протоколом? (В идеале это должно быть канонизировано ранее в запросе.)
Это также 302
(временное) перенаправление. Измените его на 301
, когда будете уверены, что он работает - если это необходимо. Временные перенаправления легче тестировать, поскольку они не кэшируются браузером.
Кроме того: это перенаправление действительно выглядит немного «подозрительным». Обычно вы не обязательно ожидаете, что index.html
или default.php
будут частью видимого URL. Вместо этого Apache (используя директиву DirectoryIndex
для mod_dir) может автоматически обслуживать (посредством внутренней перезаписи) соответствующий документ DirectoryIndex
при запросе родительского каталога (заканчивающегося косой чертой). Итак, вы можете изменить документ DirectoryIndex
:
DirectoryIndex disabled
DirectoryIndex default.php
Это будет искать default.php
(только) в любом запрашиваемом каталоге. Строка disabled
необходима для того, чтобы удалить предыдущий документ, поскольку к списку обычно добавляются дополнительные документы, что может быть нежелательно, если старый документ ( index. html
) все еще существует.