Переписать URL-адрес для определенного пользователем домена - PullRequest
0 голосов
/ 11 августа 2009

Я не совсем уверен, возможно ли это, и попытался найти, но не смог найти точного ответа на мою текущую ситуацию.

Я создаю сервис, который должен позволять пользователям указывать свой домен на сервис. (они должны указать запись A на мой ip сервера)

Я могу поймать домен с помощью команды catch all в apache. Поэтому я сделал запись Vhost для этого улова все в httpd.conf. Таким образом, все не определенные имена хостов в apache указывают на определенный каталог.

Теперь я хотел бы передать этот домен в качестве параметра моей службе. Так можно ли указать this.randomdomain.com на www.mywebserviceurl.com/domain/catch/this.randomdomain.com с .htaccess

Адресная строка должна содержать URL this.randomdomain.com

Edit:

RewriteEngine On
RewriteRule ^(.*)$ http://example.com/blogs/string/$1 [R=301] 

Вышеуказанное перенаправляет, но Firefox выдает ошибку «Страница перенаправляет неправильно - Firefox обнаружил, что сервер перенаправляет запрос на этот адрес способом, который никогда не завершится». И адрес меняется, чего я не хочу.

спасибо!

Ответы [ 3 ]

1 голос
/ 11 августа 2009

Исключить этот домен из правила:

RewriteCond %{HTTP_HOST} !=example.com
RewriteRule ^(.*)$ http://example.com/blogs/string/$1 [R=301]

А если вам нужен домен тоже:

RewriteCond %{HTTP_HOST} !=example.com
RewriteRule ^(.*)$ http://example.com/blogs/string/%{HTTP_HOST}/$1 [R=301]
0 голосов
/ 11 августа 2009

Если вы используете ответ Гамбо, но изменяете аргументы в фигурных скобках, вы можете молча перенаправить. Измените [R=301] на [L], что означает, что будет выполнено последнее правило.

RewriteCond %{HTTP_HOST} !=example.com
RewriteRule ^(.*)$ http://example.com/blogs/string/$1 [L,P]

Изменить: После просмотра ответа Гамбо, вам также нужно включить mod_proxy и добавить флаг P.

0 голосов
/ 11 августа 2009

Смотрите здесь: http://www.addedbytes.com/apache/mod_rewrite-cheat-sheet/

Директива% {HTTP_REFERER} должна делать то, что вы ищете.

...