歡迎光臨, 訪客. 請先 登入註冊一個帳號.
十一月 26, 2024, 03:08:46 上午
19595 文章 在 3865 主題 由 4579 會員
最新註冊會員: aa123aa1
LifeType 中文開發論壇  |  測試  |  LifeType 1.0 測試  |  subdomains 的問題 « 上篇主題 下篇主題 »
頁: [1] 2
作者 主題: subdomains 的問題  (閱讀 48711 次)
Raymond
新手見習
*
文章: 23


檢視個人資料
« 於: 三月 28, 2005, 09:42:43 上午 »

假設 plog 是安裝在 /usr/local/www/data/plog

那麼 base_url 就是 http://www.xxx.com/plog

subdomains_base_url 就是:
http://{username}.xxx.com/plog 或
http://{username}.xxx.com

問題是,如果只有一個 IP Address,
如何保存 www.xxx.com 的網頁? (假設那與 plog 一點關係也沒有)

依據 Apache 的文件,要用 NameVirtualHost:
NameVirtualHost x.x.x.x:80
<VirtualHost x.x.x.x:80>
ServerName www.xxx.com
DocumentRoot /usr/local/www/data
</VirtualHost>
<VirtualHost *:80>
ServerName plog.xxx.com
ServerAlias *.xxx.com
DocumentRoot /usr/local/www/data/plog
</VirutalHost>

但實際上會碰到 blogaction.class.php 中:
            // security checks...
            if( $this->_blogInfo == false ) {
                print( 'ERROR: The blog does not exist.' );
                die;
            }

稍為看了一下其他相關的 code,大概的問題應該是 redirection 以後,
PHP 取得的網址就回到 www 而不是 subdomain 的 {username} 參數.
另外,網址是否有 結束的 "/" (如 http://{username}.xxx.com/ <-- 最後一個 /) 亦會影響到是否能正常取得 {username} 參數。

建議有這種 error 的話直接將使用者送到 blogID=1 (或自行設定),或 summary.php?
以後慢慢再想有沒有其他解決的方式。
已記錄
markwu
系統管理員
超級會員
*****
文章: 3928


Mark Wu


檢視個人資料 個人網站
« 回覆文章 #1 於: 三月 28, 2005, 05:49:31 下午 »

mmm ..... 應該是可行的。

我想這可以在 admiin setting 中增加 www.xxx.com 的相對應轉址。這樣比較方便設定。

例如

www.xxx.com 有啟動 subdomain 時轉到 www.xxx.com/summary.php 或是 blogid=1

不過,如果要轉到 summary.php,那麼應該可以直接把下面這一行加入 .htaceess 阿?

引用
DirectoryIndex summary.php


Raymond:

可以請你試試,看可不可行阿?這樣會比改程式簡單。

Mark
已記錄

cody
新手見習
*
文章: 39


檢視個人資料
« 回覆文章 #2 於: 三月 28, 2005, 11:08:07 下午 »

WWW 本來就是 sub domain
真正的網址是沒有  WWW 的
為什麼一堆人把 www 當作網址的一部份 @.@
已記錄
Raymond
新手見習
*
文章: 23


檢視個人資料
« 回覆文章 #3 於: 三月 29, 2005, 01:22:18 上午 »

我想正確的說法應該是:在 admin setting 中增加找不到 blog 時的處理方式:
1> 指定 summary.php 的位置
2> 用 blogId=1 (不過 blogId=1 是不是一定存在也是一個疑問)

現在找不到 blog 就用 die 裝死就想混過去啊?   咬牙切齒

***

然後還有人連 hostname 與 subdomain 都還分不清楚...
也難怪程式分不出來... J/K...

不過這也提醒我們要測的話確實要看看含有個 "." 的 {username} 是否會有問題。
已記錄
markwu
系統管理員
超級會員
*****
文章: 3928


Mark Wu


檢視個人資料 個人網站
« 回覆文章 #4 於: 三月 29, 2005, 08:34:24 上午 »

Hi Raymond:

1. summary.php 的設定,目前必須手動。因為要改.htaccess。你試成功了嗎?
2. 呵呵!找不到,並沒有裝死阿?至少還回你 blog 不存在。

Sub domain 跟 hostname,我想這是習慣用法(錯了就變成對的)。大部分的人(對架站不熟的人)一定會認為 www 是正常網址的一部份。至少我開始學之前就是這樣認為,慢慢有人告訴我才知道。

謝謝你們的提醒。

Mark
已記錄

winman
LifeType 中文發展團隊
超級會員
*****
文章: 525


winman


檢視個人資料 個人網站
« 回覆文章 #5 於: 三月 29, 2005, 03:57:25 下午 »

引用自: markwu
Hi Raymond:

1. summary.php 的設定,目前必須手動。因為要改.htaccess。你試成功了嗎?
2. 呵呵!找不到,並沒有裝死阿?至少還回你 blog 不存在。

Sub domain 跟 hostname,我想這是習慣用法(錯了就變成對的)。大部分的人(對架站不熟的人)一定會認為 www 是正常網址的一部份。至少我開始學之前就是這樣認為,慢慢有人告訴我才知道。

謝謝你們的提醒。

Mark

我現在的情況是已經修改了.htaccess了,一進入網站的時候是進入到summary.php
但現在的問題是我反覆試驗了多次,要麼用 xxx.com 可以進入 summary.php 而
www.xxx.com 就進入最後註冊的blog,要麼就是 www.xxx.com 進入summary.php
而且 xxx.com 就進入最後註冊的blog.

TO :Markwu 我們搞技術的當然知道domains 直接打 xxx.com 就可以了,但很大
部分人都是以為 www.xxx.com 才是完整訪問網站的方法(這已經是約定成俗的了),
因此我建議plog是否能在程式裡加入檢查 www , ftp, mail, forum , 這幾個最為常用
的subdomains 的檢查代碼第一是不允許用戶註冊這幾個用戶,第二是可以設定檢查到有人輸入這幾個subdomains 時的動作,比如跳轉到 summary.php.
已記錄

俗语说:授予鱼,不如授予渔。因此在发问前先搜寻论坛,或许困扰你
的问题,在之前已经有朋友遇到并得到解答了。这样不但提高解决问题
的效率,还能令自己的能力不断加强。加油啊。
cody
新手見習
*
文章: 39


檢視個人資料
« 回覆文章 #6 於: 三月 29, 2005, 07:46:45 下午 »

應該說,讓 blog 後台有一個禁止註冊的 ID
讓這些 ID 都導向首頁
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
要如何讓 hostname  subdomain  導向哪
除了 .htaccess 可以判斷以外
從 apache 裡面的 VirtualHost 也可以強迫讀哪個檔
已記錄
markwu
系統管理員
超級會員
*****
文章: 3928


Mark Wu


檢視個人資料 個人網站
« 回覆文章 #7 於: 三月 30, 2005, 11:32:09 上午 »

Hi Cody & Raymond:

謝謝!這個真的是好建議。應該加上。這樣就更實用了!

如果可以,可以請你們到 bugs.world.net 去 report 這個 feature request 嗎?

Mark
已記錄

markwu
系統管理員
超級會員
*****
文章: 3928


Mark Wu


檢視個人資料 個人網站
« 回覆文章 #8 於: 三月 30, 2005, 03:57:08 下午 »

被 Oscar 嘲笑了!他說我們已經有 forbidden user name ... 在 global setting 中,我們怎麼沒注意到呢?sigh .... 真是  害羞  丟臉阿!我得再用功一些了。

Mark
已記錄

Raymond
新手見習
*
文章: 23


檢視個人資料
« 回覆文章 #9 於: 三月 30, 2005, 04:25:16 下午 »

那你還要被我嘲笑一次... LOL...   戴太陽眼鏡

/etc/hostname

DNS 上說這個 IP 的 domain name

Apache 的 httpd.conf 中設定的 ServerName 及 ServerAlias

是三件不同的事。

就是因為這樣,如果我要 www.xxx.com display:
http://www.xxx.com/index.php
但加上 subdomain 後就不會 work..

詳細自己看 note...
已記錄
Anonymous
訪客
« 回覆文章 #10 於: 三月 31, 2005, 03:55:46 下午 »

引用自: Raymond
NameVirtualHost x.x.x.x:80
<VirtualHost x.x.x.x:80>
ServerName www.xxx.com
DocumentRoot /usr/local/www/data
</VirtualHost>
<VirtualHost *:80>
ServerName plog.xxx.com
ServerAlias *.xxx.com
DocumentRoot /usr/local/www/data/plog
</VirutalHost>



我認為是這個地方設定錯誤
ServerAlias *.xxx.com <==這裡
應該設定為
ServerAlias *.plog.xxx.com

這樣才不會跟其他的domain(例如: www.xxx.com)相衝突
已記錄
windtalk
新手見習
*
文章: 8


檢視個人資料
« 回覆文章 #11 於: 三月 31, 2005, 03:59:18 下午 »

Sorry!!剛忘了登入

引用自: Raymond
NameVirtualHost x.x.x.x:80
<VirtualHost x.x.x.x:80>
ServerName www.xxx.com
DocumentRoot /usr/local/www/data
</VirtualHost>
<VirtualHost *:80>
ServerName plog.xxx.com
ServerAlias *.xxx.com
DocumentRoot /usr/local/www/data/plog
</VirutalHost>



我認為是這個地方設定錯誤
ServerAlias *.xxx.com <==這裡
應該設定為
ServerAlias *.plog.xxx.com

這樣才不會跟其他的domain(例如: www.xxx.com)相衝突

dns的設定部分也要相對更改

plog             IN         A            xx.xx.xx.xx
*.plog          IN         A            xx.xx.xx.xx
已記錄

winman
LifeType 中文發展團隊
超級會員
*****
文章: 525


winman


檢視個人資料 個人網站
« 回覆文章 #12 於: 三月 31, 2005, 04:17:10 下午 »

引用自: windtalk
Sorry!!剛忘了登入


我認為是這個地方設定錯誤
ServerAlias *.xxx.com <==這裡
應該設定為
ServerAlias *.plog.xxx.com

這樣才不會跟其他的domain(例如: www.xxx.com)相衝突

dns的設定部分也要相對更改

plog             IN         A            xx.xx.xx.xx
*.plog          IN         A            xx.xx.xx.xx



但如果有朋友自己的站直接架設plog應用,而不希望使用blog.xxx.com 這樣的
形式時,那麼是一定會出現問題的.
已記錄

俗语说:授予鱼,不如授予渔。因此在发问前先搜寻论坛,或许困扰你
的问题,在之前已经有朋友遇到并得到解答了。这样不但提高解决问题
的效率,还能令自己的能力不断加强。加油啊。
tripc
新手見習
*
文章: 11


檢視個人資料
« 回覆文章 #13 於: 四月 02, 2005, 12:00:47 下午 »

引用自: markwu
mmm ..... 應該是可行的。

我想這可以在 admiin setting 中增加 www.xxx.com 的相對應轉址。這樣比較方便設定。

例如

www.xxx.com 有啟動 subdomain 時轉到 www.xxx.com/summary.php 或是 blogid=1

不過,如果要轉到 summary.php,那麼應該可以直接把下面這一行加入 .htaceess 阿?

引用
DirectoryIndex summary.php


Raymond:

可以請你試試,看可不可行阿?這樣會比改程式簡單。

Mark


因為1.0已經定稿了, 我自己去改了一下程式碼, 你參考看看, 要不要自己改

1. 在 class/action/blogaction.php裡, 大概是184行的地方
2. MARK掉兩行錯誤訊息及掛掉的指令, 改成以下的2行
           $baseURL = $config->getValue( "base_url" );
           header("Location:http://$baseURL/summary.php");

這樣子就會自動轉到 summary.php了, 如果要轉到那裡去, 把summary.php改掉就成了。

方法雖然有點暴力, 但也無可奈何。
已記錄
Raymond
新手見習
*
文章: 23


檢視個人資料
« 回覆文章 #14 於: 四月 02, 2005, 10:52:55 下午 »

拜託一下,我改的方法也差不多,但至少還有給個理由...  魔鬼  
大概就是這樣:

$baseURL = $config->getValue("base_url");
header("HTTP/1.1 303 REDIRECT");
header("Location: http://$baseURL/summary.php");
exit();

HTTP/1.0 302 也可以,而且以防萬一應該還是要有 exit() ...
這樣就不用裝死...  開懷大笑

引用

1. 在 class/action/blogaction.php裡, 大概是184行的地方
2. MARK掉兩行錯誤訊息及掛掉的指令, 改成以下的2行
$baseURL = $config->getValue( "base_url" );
header("Location:http://$baseURL/summary.php");

這樣子就會自動轉到 summary.php了, 如果要轉到那裡去, 把summary.php改掉就成了。
已記錄
頁: [1] 2
LifeType 中文開發論壇  |  測試  |  LifeType 1.0 測試  |  subdomains 的問題 « 上篇主題 下篇主題 »
    前往: