Создание списка перенаправлений с псевдонима домена на основной домен
Я пытаюсь настроить список перенаправлений в своем .htaccess, чтобы создать вручную определенный список "коротких URL", в котором домен коротких URL ("short.com ") настраивается как псевдоним для домена назначения ("longdomain.com ").
Проблема, с которой я сталкиваюсь, заключается в том, что, как и ожидалось, это базовое перенаправление из корневого каталога работает нормально:
Redirect /howto http://longdomain.com/tutorials/how-to-do-something
Redirect /where http://longdomain.com/directions/where-is-my-car
...но не подходит для перенаправления на другой домен. Однако, включая доменное имя, такое как это:
Redirect short.com/howto http://longdomain.com/tutorials/how-to-do-something
Redirect short.com/where http://longdomain.com/directions/where-is-my-car
...не работает для псевдонима домена. Он не перенаправляет, он просто загружает контент (/howto и /где) из основного домена. Контент, которого там нет, я мог бы добавить, поэтому в итоге он ничего не показывает.
Есть ли способ создать аналогичный список перенаправлений с псевдонима домена на основной домен? Или мне нужно переписать это? И как бы это выглядело?
РЕДАКТИРОВАТЬ - НАДЕЮСЬ, ЛУЧШЕЕ ОПИСАНИЕ ПРОБЛЕМЫ
У меня есть короткий и длинный домен, оба с одинаковым DNS, короткий домен настроен в качестве псевдонима для основного.
Мне нужно создать короткие URL-адреса для контента в основном домене. Я сделаю это вручную, так как мне нужны читаемые URL-адреса, а не случайно сгенерированные строки. Итак: short.com/snowwhite пошел бы в long.com/stories/fairytales/snowwhiteandthesevendwarfs .
2 answers
Директива Redirect
не обращает никакого внимания на текущее имя хоста. Ваше намерение
Redirect short.com/howto http://longdomain.com/tutorials/how-to-do-something
, по-видимому, перенаправляется только тогда, когда доменное имя "short.com ". перенаправление mod_alias не поддерживает этот синтаксис. Аргумент short.com/howto
должен только быть путем URI (начинающимся с косой черты).
Вы могли бы решить эту проблему с помощью директивы
<If "%{HTTP_HOST} == 'short.com'">
Redirect permanent /howto http://longdomain.com/tutorials/how-to-do-something
</If>
В качестве альтернативы вы можете использовать mod_rewrite:
RewriteEngine on
RewriteCond %{HTTP_HOST} short.com [NC]
RewriteRule ^/howto$ http://longdomain.com/tutorials/how-to-do-something [L,R=301]
У меня есть сделал перенаправления постоянными (301) перенаправлениями в моих приведенных выше примерах, что более удобно для SEO, чем 302 временных перенаправления по умолчанию, которые вы использовали.
Почему бы не создать запись CNAME из short.com указывая на longdomain.com и тогда, основываясь на ваших примерах, входящие запросы будут работать без каких-либо short.com .правила htaccess.