apache的個人目錄的小問題

這個版面主要討論 debian 在 server 端的應用問題, server 種類繁多..舉凡 Web Server 、 File Server、 DHCP Server..等等。

版主: 阿信

apache的個人目錄的小問題

文章mrblack » 週二 9月 07, 2004 12:37 am

不知道個位前輩們有沒有人知道

除了建link與別名外

讓使用都目錄不用打
"~"
這個等號的方法呀(就是像這樣 http://a.b.c/test
像這樣的東西 ↑

謝謝

先說聲謝謝了
mrblack
可愛的小學生
可愛的小學生
 
文章: 12
註冊時間: 週一 6月 14, 2004 10:17 am

re:apache的個人目錄的小問題

文章sam001 » 週六 9月 18, 2004 12:36 am

也許你可以試試 mod_rewrite
這個網址有不錯的說明
http://itzone.info/dev/skyap/docs/misc/ ... guide.html
sam001
可愛的小學生
可愛的小學生
 
文章: 6
註冊時間: 週三 12月 17, 2003 2:36 pm

re:apache的個人目錄的小問題

文章coollong » 週六 9月 18, 2004 8:17 am

好像也可以將用戶解析成:用戶名稱.domainname,要dns配合,但是忘記要改那裏了!!
coollong
可愛的小學生
可愛的小學生
 
文章: 15
註冊時間: 週一 9月 22, 2003 9:21 pm

re:apache的個人目錄的小問題

文章coollong » 週六 9月 18, 2004 8:19 am

好像也可以將用戶解析成:用戶名稱.domainname,要dns配合,但是忘記要改那裏了!!
coollong
可愛的小學生
可愛的小學生
 
文章: 15
註冊時間: 週一 9月 22, 2003 9:21 pm

re:apache的個人目錄的小問題

文章訪客 » 週六 9月 18, 2004 11:08 am

把apache的主目錄改在user目錄的上面

or

就把使用者的目錄建在apache的主目錄下
訪客
 

re:apache的個人目錄的小問題

文章slog » 週五 12月 03, 2004 6:34 pm

http://itzone.info/dev/skyap/docs/misc/ ... guide.html
這個連結已經看不到了, 不過, 我直接在 apache 的網站上找..
sam001 前輩提的 mod_rewrite 是不是以下的呢?
若是的話, 小弟還是有一點看不是很懂說..@@"
=======================
Trailing Slash Problem
Description:
Every webmaster can sing a song about the problem of the trailing slash on URLs referencing directories. If they are missing, the server dumps an error, because if you say /~quux/foo instead of /~quux/foo/ then the server searches for a file named foo. And because this file is a directory it complains. Actually is tries to fix it themself in most of the cases, but sometimes this mechanism need to be emulated by you. For instance after you have done a lot of complicated URL rewritings to CGI scripts etc.
Solution:
The solution to this subtle problem is to let the server add the trailing slash automatically. To do this correctly we have to use an external redirect, so the browser correctly requests subsequent images etc. If we only did a internal rewrite, this would only work for the directory page, but would go wrong when any images are included into this page with relative URLs, because the browser would request an in-lined object. For instance, a request for image.gif in /~quux/foo/index.html would become /~quux/image.gif without the external redirect!
So, to do this trick we write:

RewriteEngine on
RewriteBase /~quux/
RewriteRule ^foo$ foo/ [R]


The crazy and lazy can even do the following in the top-level .htaccess file of their homedir. But notice that this creates some processing overhead.

RewriteEngine on
RewriteBase /~quux/
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^(.+[^/])$ $1/ [R]
slog
懵懂的國中生
懵懂的國中生
 
文章: 133
註冊時間: 週四 12月 02, 2004 12:18 am
來自: 水深火熱的地方

re:apache的個人目錄的小問題

文章slog » 週一 12月 06, 2004 1:57 pm

我應該是看錯了..
上面貼的應該是指最後面要不要加上 / 的解決辦法..@@"
slog
懵懂的國中生
懵懂的國中生
 
文章: 133
註冊時間: 週四 12月 02, 2004 12:18 am
來自: 水深火熱的地方

re:apache的個人目錄的小問題

文章sam001 » 週四 12月 09, 2004 10:43 am

http://httpd.apache.org/docs/misc/rewriteguide.html
--------------------------------------------------------
Canonical URLs
Description:
On some webservers there are more than one URL for a resource. Usually there are canonical URLs (which should be actually used and distributed) and those which are just shortcuts, internal ones, etc. Independent of which URL the user supplied with the request he should finally see the canonical one only.

Solution:
We do an external HTTP redirect for all non-canonical URLs to fix them in the location view of the Browser and for all subsequent requests. In the example ruleset below we replace /~user by the canonical /u/user and fix a missing trailing slash for /u/user.

RewriteRule ^/~([^/]+)/?(.*) /u/$1/$2 [R]
RewriteRule ^/([uge])/([^/]+)$ /$1/$2/ [R]
--------------------------------------------------
基本上你要的功能就是第一行 RewriteRule
只是你不用加上 u, 所以你可以寫成
RewriteRule ^/~([^/]+)/?(.*) /$1/$2
sam001
可愛的小學生
可愛的小學生
 
文章: 6
註冊時間: 週三 12月 17, 2003 2:36 pm

re:apache的個人目錄的小問題

文章slog » 週五 12月 10, 2004 12:17 pm

這個 Rewrite 我看實在看不太懂, 所以自己寫不出來..@@"
Sam 前輩..
我在 httpd.conf 裡面寫上
---------------------------------------------
RewriteEngine on
RewriteRule ^/~([^/]+)/?(.*) /$1/$2 [R]
RewriteRule ^/[uge])/([^/]+)$ /$1/$2/ [R]
---------------------------------------------
不過, 還是沒有辦法用
http://hostname/username 或是
http://hostname/username/ 連線.
我是不是少加了什麼東西? fO.o
slog
懵懂的國中生
懵懂的國中生
 
文章: 133
註冊時間: 週四 12月 02, 2004 12:18 am
來自: 水深火熱的地方

Re: re:apache的個人目錄的小問題

文章d2207197 » 週五 12月 10, 2004 2:09 pm

slog 寫:這個 Rewrite 我看實在看不太懂, 所以自己寫不出來..@@"
Sam 前輩..
我在 httpd.conf 裡面寫上
---------------------------------------------
RewriteEngine on
RewriteRule ^/~([^/]+)/?(.*) /$1/$2 [R]
RewriteRule ^/[uge])/([^/]+)$ /$1/$2/ [R]
---------------------------------------------
不過, 還是沒有辦法用
http://hostname/username 或是
http://hostname/username/ 連線.
我是不是少加了什麼東西? fO.o

這是正規表示式,您可以先去學一下正規表示式,那上面那串就看得懂了。

不過上面也寫錯了,應該是這樣寫才對。
代碼: 選擇全部
    RewriteEngine on
    RewriteRule ^/([^/~]+)/?(.*)$ /~$1/$2 [R]


不過上面的規則,會讓 /xxxx 通通 rewrite 為 /~xxxx
若放正常網頁就會出問題,比如說 /test.html 就變成了 /~test.html
然後他就會找不到 /~test.html

小弟的作法是用 virtual host,這樣比較好,
當然你也要確定你有那個 domain name 才能如此作。
代碼: 選擇全部
<VirtualHost people.csdc.twbbs.org>
    DocumentRoot /var/www/user/
    ServerName people.csdc.twbbs.org
    UserDir /home/*/public_html
    <Directory /home/*/public_html>
        AllowOverride FileInfo AuthConfig Limit Indexes
    #    Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
         Options MultiViews Indexes FollowSymLinks IncludesNoExec
        <Limit GET POST OPTIONS PROPFIND>
            Order allow,deny
            Allow from all
        </Limit>
        <Limit PUT DELETE PATCH PROPPATCH MKCOL COPY MOVE LOCK UNLOCK>
            Order deny,allow
            Deny from all
        </Limit>
    </Directory>
    RewriteEngine on
    RewriteRule ^/([^/~]+)/?(.*)$ /~$1/$2 [R]
</VirtualHost>


也可以一個一個對應來 rewrite 啦,只是每次新增使用者都要修改。
代碼: 選擇全部
Rewrite ^/joseph/?(.*)$ /~joseph/$1 [R]
Rewrite ^/jane/?(.*)$ /~jane/$1 [R]
Rewrite ^/bill/?(.*)$ /~bill/$1 [R]
頭像
d2207197
鑽研的研究生
鑽研的研究生
 
文章: 1763
註冊時間: 週二 5月 27, 2003 9:57 pm
來自: 火星

Re: re:apache的個人目錄的小問題

文章slog » 週五 12月 10, 2004 3:02 pm

d2207197 寫:這是正規表示式,您可以先去學一下正規表示式,那上面那串就看得懂了。

不過上面也寫錯了,應該是這樣寫才對。
代碼: 選擇全部
    RewriteEngine on
    RewriteRule ^/([^/~]+)/?(.*)$ /~$1/$2 [R]


不過上面的規則,會讓 /xxxx 通通 rewrite 為 /~xxxx
若放正常網頁就會出問題,比如說 /test.html 就變成了 /~test.html
然後他就會找不到 /~test.html


疑? 我是要把 /~xxx 全部變成 /xxx 說..
我被搞模糊了..@@"

第二種 domain 的方式, 我就沒辦法了, 除非我來去買的 domain ..:p
第三種的話, 不是就等於每增加一個帳號就得到 httpd.conf 裡面去增加一行?
slog
懵懂的國中生
懵懂的國中生
 
文章: 133
註冊時間: 週四 12月 02, 2004 12:18 am
來自: 水深火熱的地方

re:apache的個人目錄的小問題

文章d2207197 » 週五 12月 10, 2004 5:52 pm

所謂的將 /xxxx rewrite 為 /~xxxx,
就是當你在網址列上打 /xxxx 他就會自動傳回 /~xxxx 該頁的內容
這應該符合您需求吧!

後面的 [R] 代表使用 redirect 的方式,也就是說是重新導向到 /~xxxx 並顯示該頁
所以網址列也會一併改為 /~xxxx。

若不希望網址也被更改,可使用 [PT],也就像下面這樣寫:
代碼: 選擇全部
    RewriteEngine on
    RewriteRule ^/([^/~]+)/?(.*)$ /~$1/$2 [PT]

這時連到 /xxxx ,而你實際上得到的網頁內容是 /~xxxx 了,網址也依舊是 /xxxx

domain 也沒差阿,小弟上面用的 twbbs.org 是免費的 domain,還可以寫信請
twbbs.org 管理者下放權限給我們自己管理 DNS。

第三種確實是要手動加,不過寫些 script 應該就能免除這些困擾。
頭像
d2207197
鑽研的研究生
鑽研的研究生
 
文章: 1763
註冊時間: 週二 5月 27, 2003 9:57 pm
來自: 火星

re:apache的個人目錄的小問題

文章slog » 週六 12月 11, 2004 1:46 pm

我用
代碼: 選擇全部
RewriteEngine on
RewriteRule ^/([^/~]+)/?(.*)$ /~$1/$2 [PT]

的方式就 ok 了..

不過, 有個小問題同時就會出現..
若是我用 http://hostname/slog 的話, 那圖片就會不見..
得用 http://hostname/slog/ 最後的 slash 就得一定要加上去了..
但是, 不是只是把將 /~slog rewrite 成 /slog 嗎?
slog
懵懂的國中生
懵懂的國中生
 
文章: 133
註冊時間: 週四 12月 02, 2004 12:18 am
來自: 水深火熱的地方

re:apache的個人目錄的小問題

文章slog » 週三 12月 15, 2004 7:51 pm

還發現..rewrite 一加..
http://hostname/ 這樣就連不到 /var/www 底下啦..
不知道被指到哪裡?
slog
懵懂的國中生
懵懂的國中生
 
文章: 133
註冊時間: 週四 12月 02, 2004 12:18 am
來自: 水深火熱的地方


回到 debian server

誰在線上

正在瀏覽這個版面的使用者:沒有註冊會員 和 1 位訪客

cron