htaccess перенаправление поддомена

Я искал и пробовал несколько разных способов, но не могу заставить это работать.

На самом деле у меня нет настроенных поддоменов, но у меня будет около 30 подобных перенаправлений, которые мне нужно сделать.

E.g:

sub-domain.domain.co.uk должен перейти на http://www.domain.com/folder/page-name

Почти в каждом поддомене и каждом «имени страницы» будут дефисы, поэтому я не уверен, влияет ли это на форматирование регулярных выражений.

Любая помощь приветствуется!

Спасибо


person Jambo    schedule 19.11.2011    source источник
comment
это была ошибка, но это все равно не работает, если я его изменю.   -  person Jambo    schedule 19.11.2011


Ответы (1)


Вам нужно использовать переменную %{HTTP_HOST} и сопоставить ее в RewriteCond, а затем использовать обратную ссылку %1 для доступа к ней в правиле перезаписи.

Поиск «перенаправления поддомена» в Stack Overflow, похоже, это именно то, что вам нужно: Внутренний поддомен для перенаправления папки


РЕДАКТИРОВАТЬ

Принятый ответ в этой ссылке StackOverflow выше:

RewriteEngine on
RewriteCond %{HTTP_HOST} !^www\.
RewriteCond %{HTTP_HOST} ^([^/.]+)\.example\.com$ 
RewriteRule ^ %1%{REQUEST_URI} [L]

В вашем файле .htaccess поместите это выше любых правил, которые у вас есть. Очевидно, вам нужно будет изменить example\.com на любой домен, и настроить правильные каталоги в корне вашего документа.

person Jon Lin    schedule 19.11.2011
comment
Сначала вам нужно настроить сервер так, чтобы он принимал любой субдомен для вашего домена. Честно говоря, я даже не знаю, где бы я это сделал? Я использую Hostgator, я бы предположил, что все хорошо с самого начала. - person Jambo; 19.11.2011
comment
Вам нужно будет ознакомиться с учебными пособиями Hostgator по настройке субдоменов. Вам просто нужно указать все субдомены, которые вы настроили, на один и тот же корень документа. - person Jon Lin; 19.11.2011
comment
В том-то и дело, что я не хочу на самом деле создавать множество поддоменов, так как это просто вызовет огромный беспорядок с тем объемом, который я хочу. Я думал, что можно перенаправить «виртуальный» поддомен, независимо от того, был ли он «создан» в cPanel. - person Jambo; 19.11.2011
comment
Как я уже сказал, вам нужно проверить поддержку Hostgator, у них, вероятно, есть статьи для таких вещей: support.hostgator.com/articles/hosting-guide/lets-get-started/ И после того, как у вас есть эта настройка, вы можете использовать это RewriteRule в ссылке, чтобы делать то, что вы хотите. - person Jon Lin; 19.11.2011
comment
Я уже говорил с их технической поддержкой, но они сказали, что не знают, что делать, так как не помогают с htaccess. Другие правила RewriteRules работают, например: RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME}\.php -f RewriteRule ^(.*)$ $1.php - person Jambo; 19.11.2011
comment
Используйте правила по ссылке в ответе, но вы захотите поместить их над теми, которые у вас есть, чтобы они применялись первыми. - person Jon Lin; 19.11.2011
comment
Извините, но я до сих пор не знаю точно, что я делаю. Я работаю методом проб и ошибок уже больше часа. - person Jambo; 19.11.2011