Это была бы хорошая возможность узнать о кодах состояния HTTP. Прочитайте раздел определения кодов состояния спецификации HTTP 1.1; раздел 10.3 «Перенаправление 3xx» содержит коды состояния, относящиеся к вашему вопросу. Знание кодов HTTP 3xx означает, что вы можете отправить ответ, имеющий именно ту семантику, которую вы намереваетесь. Например, если вы хотите, чтобы перенаправление на всегда происходило, вы можете использовать HTTP 301 «Перемещено навсегда». Теоретически клиент может использовать ответ HTTP 301 в качестве сигнала для сохранения нового значения URL вместо старого.
Ваши параметры конфигурации в Dreamhost не так ограничены, как вы думаете, потому что вы можете указать множество директив конфигурации веб-сервера Apache в скрытом файле .htaccess . Этот файл должен быть помещен в каталог веб-документов; Используя ваш пример, вы поместите его в корневой каталог веб-документов, / home / midas / codinghorror / , хотя файлы .htaccess могут быть помещены в любой каталог, обслуживаемый Apache. (Не забудьте указать начальную точку в имени файла.) Ее содержимым может быть либо пример mod_alias, либо уже упомянутый пример mod_rewrite.
Обратите внимание, что директива mod_alias RedirectPermanent отправит вам код состояния HTTP 301. Если вы хотите использовать для этого mod_rewrite, вы можете указать код состояния:
RewriteEngine on
RewriteRule ^$ /blog/ [R=301]
Если вы используете [R] без кода, то используется HTTP 302 («Временно перемещенный»).
Поскольку PHP также доступен для вас, это тоже опция, хотя возможно, что вышеупомянутые опции, использующие .htaccess, работают быстрее. Вы должны поместить файл index.php в / home / midas / codinghorror / и использовать код, указанный Джереми Рутеном выше. Опять же, вы можете указать код состояния в третьем аргументе header ():
<?php
header('Location: http://www.codinghorror.com/blog', TRUE, 301);
?>
В противном случае, используя функцию header () PHP с 'Location', по умолчанию отправляется ответ о статусе HTTP 302.