2011-12-31 1 views
1

Что такое правильный способ создания ссылки на субдомен текущего URL-адреса в Drupal 7?Правильный способ ссылки на субдомен текущего URL-адреса в Drupal

I.e. если я нахожусь на http://example.com/content123, ссылка будет указывать на http://subdomain.example.com/content123, тем самым сохраняя текущий URL-адрес, добавляя только субдомен.

+0

В каком контексте? Обычно ссылки - это * клиентская сторона *. Где PHP фактор? –

+0

That's unfortunate, since both of those observations are entirely needed to answer this question. ':|' –

ответ

2

Существует два подхода, которые вы можете предпринять здесь. Первый пример, который я показал, позволит вам перейти в корневой домен и добавить новый поддомен. Второй пример просто добавит новый поддомен к текущему хосту.

Добавить поддомен корневой домен

<?php 
$new_subdomain = 'subdomain'; 
$split_domain = explode('.',$_SERVER['HTTP_HOST']); 
echo $new_subdomain.'.'.$split_domain[count($split_domain) - 2].'.'.$split_domain[count($split_domain) - 1]; 
?> 

Добавить субдомен текущего хоста

<?php 
$new_subdomain = 'subdomain'; 
echo $new_subdomain.'.'.$_SERVER['HTTP_HOST']; 
?> 
+0

Вы на правильном пути, но это большая обработка на серверной стороне для каждой ссылки. Что-нибудь более короткое или более естественное? – timofey

+1

Вы действительно думаете, что на сервере все будет проще? Просто потому, что меньше строк кода не делает его менее обрабатываемым. Если вы используете drupal, я бы не потерял сон за несколько строк. – Anthony

0

Что вы ищете, это какой-то .htaccess или аналогичный, поскольку использование PHP для этого вопроса - не выход.

1

Посмотрите на url() функции в Drupal. Он позволяет вам создать ссылку на путь на определенном языке.

'language': необязательный языковой объект. Если связанный с ним путь является внутренним для сайта, $ options ['language'] используется для поиска псевдонима для URL-адреса. Если параметр $ options ['language'] опущен, будет использоваться глобальный $ language_url.

+0

Можете ли вы привести мне пример? Я не мог понять, как ввести текст ссылки. Я также попробовал l ($ title, $ path, array ('language' => 'de')), но id ничего не сделал. – timofey

+0

Прошу прощения, но у меня нет многоязычного сайта Drupal. Я пробовал один на одном языке, но у меня был обычный адрес, как и ожидалось. –

0

Самый «правильный» способ обработки альтернативных страниц языка является на стороне клиента, используя:

<link rel="alternate" hreflang="es" href="http://es.example.com/" /> 

Любой современный браузер должен справиться с остальными.

Я уверен, что Drupal вставляет их для вас, если вы google hreflang drupal.

Здесь:

http://drupal.org/node/1200030

Смежные вопросы