Создание списка перенаправлений с псевдонима домена на основной домен


Я пытаюсь настроить список перенаправлений в своем .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 .

Author: Jolle, 2014-12-14

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 временных перенаправления по умолчанию, которые вы использовали.

 0
Author: Stephen Ostermiller, 2014-12-15 20:09:47

Почему бы не создать запись CNAME из short.com указывая на longdomain.com и тогда, основываясь на ваших примерах, входящие запросы будут работать без каких-либо short.com .правила htaccess.

 0
Author: Steve, 2014-12-14 22:01:17