2011-12-31 28 views
1

在Drupal 7中創建到當前URL的子域的鏈接的正確方法是什麼?鏈接到Drupal中當前URL的子域的正確方法

I.e.如果我在http://example.com/content123,鏈接將指向http://subdomain.example.com/content123,從而保持當前的網址,只添加一個子域名。

+0

在什麼情況下?鏈接通常是*客戶端*選擇。 PHP的因素在哪裏? – 2011-12-31 01:08:57

+0

That's unfortunate, since both of those observations are entirely needed to answer this question. ':|' – 2011-12-31 01:20:06

回答

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 2011-12-31 01:26:55

+1

你真的覺得在服務器上實際上更簡單嗎?僅僅因爲代碼行數少,並不能減少處理。如果你正在運行drupal,我不會因爲幾個字符串連接而失眠。 – Anthony 2011-12-31 01:41:56

0

你在找什麼是某種.htaccess或類似的,因爲使用PHP的這個問題是不是要走的路。

1

看一看在Drupal的url()功能。它允許您使用特定語言創建指向路徑的鏈接。

'language':一個可選的語言對象。如果鏈接的路徑在站點內部,則使用$ options ['language']查找URL的別名。如果省略$ options ['language'],則將使用全局$ language_url。

+0

你能舉個例子嗎?我無法弄清楚如何輸入鏈接文本。我也試過l($ title,$ path,array('language'=>'de')),但是id沒有做任何事情。 – timofey 2011-12-31 01:29:17

+0

對不起,但我沒有多語言Drupal網站啓動並運行。按照預期,我只用一種語言嘗試過,但我的地址正常。 – 2011-12-31 01:56:45

0

最「正確」的方式來處理其他語言的網頁是客戶端,使用:

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

任何現代瀏覽器應該處理其餘部分。

我是積極的Drupal會爲你插入這些,如果你google hreflang drupal。

這就是:

http://drupal.org/node/1200030

相關問題