• 締切済み

ユーザディレクトリの意味を表す"~"(チルダ)を消す

こんばんわ。 os:vine linux3.2 apache:1.3.33 の環境でwebサーバを構築しております。 ttp://fedorasrv.com/apache-userdir.shtml ttp://www.itmedia.co.jp/help/tips/linux/l0464.html などのページを参考に、ユーザが作成したwebページへのアドレスから"~"(チルダ)を排除しようと試みました。 httpd.confに以下の文を追加しました。 AliasMatch ^/([^/]+)/(.*) /home/$1/public_html/$2 結果としては、ユーザが作成したWebページでは上手くいくのですが、DocumentRootに設定されているページが上手く表示できないようになりました。 具体的には DocumentRoot /home/httpd/html が設定してあり、xoopsでトップページを構築してありますが、表示されるべきページの文章は表示され、画像が表示されないというエラーが起きています。 エラーログには File does not exist: /home/themes/public_html/smart/images/logo.gif となっていました。(大量にありましたが省略しています) 本来は /home/httpd/html/themes/smart/images/logo.gif にあるものです。 以上より、最初に記述したAliasMatchがいたずらをしているものと思われますが、特定のユーザ(DocumentRoot)を除外することは可能でしょうか。教えていただけると幸いです。 長文失礼しました。

みんなの回答

回答No.1

方法1. AliasMatch ^/([^/]+)/(.*) /home/$1/public_html/$2 <Directory /home/*/public_html> 中略 </Directory> をhttpd.confの一番下に移動してみてください 方法2. AliasMatch ^/U/([^/]+)/(.*) /home/$1/public_html/$2 これでも回避できる問題ですがユーザーのURLは http://****.com/U/ユーザー名/ になってしまいます

関連するQ&A

  • apache2でユーザーディレクトリが

    apache2でユーザーディレクトリを使いたいんですが ただのapacheではデフォルトでユーザーディレクトリがつかえるんですが 403でパーミッションを直して使えて apache2でいろいろ apache2.confなどにuserdir.cなどのモジュールを読み込ませたり sites-avalias/defaultに /home/*/public_htmlなど試してみたいんですが ダメみたいです ちょっと省略していますが ちなみにバージョンはApache/2.2.3です エラーは http://xxxxx/~ユーザー名 にアクセスすると 403ではなく404エラー フォルダが無いということは sites-avalias/defaultかapache2.confの設定がおかしいんでしょうか? ちゃんと /home/xxxx/public_htmlも作ってありますし パーミッションもあっています しかし <Directory /home/xxx/public_html>などの設定をしたいんですが sites-avalis/defaultに書くのか それともapache2.confに書くのかまぎらわしくて defaultのほうには<Directory /var/www>など書いてあって apache2.confにはmoduleなどいろいろ書いてあります apache2がhttpd.confではなくてまぎらわしくてよくわかりません それとバージョンなど古かったりなど違ったりして できないみたいです Apache/2.2.3でユーザーディレクトリを使っているかた 詳しく教えて下さいお願いします

  • ~user/ をDocumentRootに設定したい。

    次の環境で開発用テストサーバたてて、複数のウェブサイトの動作確認をlocalhost/~foobarで行いたいと思っています。 Windows XP SP2 Apache 1.3.33 ---- D:\Documents and Settings\Administrator\My Documents\Site\users\foobar\public_html の直下にimagesフォルダを置き、 http://localhost/~foobar/images/spacer.gif にアクセスできるようにするためのapacheのhttpd.confの記載方法を教えてください。 現在の症状は次のようになっています。 ---- http://localhost/~foobar/index.html このhtmlの画像/cssディレクトリのリンクは、次のようにルートをみるようになっています。 img src="/images/spacer.gif" 私はここで次のURIにアクセスすることを意図しています。 http://localhost/~foobar/images/spacer.gif そこで、D:\Documents and Settings\Administrator\My Documents\Site\users\foobar\public_html の直下にimagesフォルダを置き、apacheのhttpd.confに次のように記載しましたが、思い通りに画像などが表示されません。 DocumentRoot "D:/Documents and Settings/Administrator/My Documents/Site/users/*/public_html" <Directory "D:/Documents and Settings/Administrator/My Documents/Site/users/*/public_html"> <IfModule mod_userdir.c> UserDir "D:/Documents and Settings/Administrator/My Documents/Site/users/*/public_html" </IfModule> よろしくお願いいたします。

  • Apacheでユーザディレクトリが公開できません。

    はじめまして。恐れ入りますがぜひともご教示下さい。 今まで自宅サーバにてApacheでサイト運営していたのですが、友人にせがまれ、友人向けのサイトスペースを用意することになりました。 そこで、友人用のユーザアカウントを用意し(今までは特にユーザーディレクトリを用意して運営していなかった)、ドキュメントルート /home/"ユーザ名"/public_html にindex.htmlと.htaccessを用意し、設定を終えたはずなのですがlocalhost/"ユーザ名"/にアクセスするとforbiddenになってしまいます。 /home/"ユーザ名"/public_html以下の全てのディレクトリ/ファイルは所有者nobodyでパーミッションは755です。 また、.htaccessでは、以下の様な設定になっております。 DocumentRoot "/home/"ユーザ名"/public_html/ <Directory "/home/"ユーザ名"/public_html"> Options FollowSymLinks AllowOverride AuthConfig Limit </Directory> です。行き詰まってしまったので考えられる 処置を教えていただけませんでしょうか? OS:Vinelinux3.1 Webサーバ:Apache1.3.33 よろしくお願いします。

  • ~user を表示できない

    RedHat8.0+Apache2.43でウェブサーバーを立てたんですが、トップページは普通に表示できるのにユーザーのページが表示できません。/etc/httpd/conf/httpd.confでは <IfModule mod_userdir.c> # UserDir "disable" UserDir public_html </IfModule> としてあります。ユーザー(taro)のディレクトリのパーミッションは [root@aurora public_html]# pwd /home/taro/public_html [root@aurora public_html]# la 合計 16 drwxr-xr-x 2 taro users 4096 1月 31 16:36 . drwxr-xr-x 23 taro users 4096 5月 30 17:35 .. -rw-r--r-- 1 taro users 2936 1月 31 16:36 TokyoTime.class -rw-r--r-- 1 taro users 53 1月 31 16:36 index.html [root@aurora public_html]# です。 ユーザーのページを見れるようにするにはどうしたらいいでしょう?

  • apache2の設定 public_html?

    こんにちは。 apacheを自分で設定してみてふと気になったことがあります。 httpd.confでDocumentRootを指定する、というのはわかるのですが、 よくプロバイダのWebスペースの設定はPublic_html以下にindex.htmlを 作ってくださいと書いてあります。 そしてそのページを見る時は、 http://www.kakuuno.net/username/index.html になると思います。 これってどうやってDocumentrootを指定しているんでしょうか? /home以下を指定したらきっとページを見る時は、 http://www.kakuuno.net/username/public_html/index.html でないと 見ることが出来ないような気がするんですけど・・・。

  • Apache2のユーザフォルダ設定

    初投稿です。みなさんのお知恵を貸してください。 常時接続のWindows2000の自宅マシン(以下、サーバ)にApache2をインストールして、複数人のユーザが自分用のホームページを置けるようにしたいと考えています。 このとき、サーバ上に各ユーザがデータを置く場所と、URLの関係を以下のようにしたいのですが、設定がよくわかりません。 サーバ E:\home\user1\public_html\index.html URL: ドメイン/user1/index.html おそらく、Apacheのhttpd.confファイルの以下の設定で何とかなるとは思うのですが、どうすればいいのかわかりません。 ネット上で調べてみましたが、これだという情報がありませんでした。 DocumentRoot "E:/home/" <Directory "E:/home/user**/public_html"> よろしくお願いします。

  • apacheのユーザーディレクトリの設定

    Fedora Core6のapacheのユーザーディレクトリの設定で悩んでいます。 設定ファイル(httpd.conf)には以下のように記述しています。 #UserDir disable UserDir public_html <Directory /home/*/public_html> AllowOverride FileInfo AuthConfig Limit Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec <Limit GET POST OPTIONS> Order allow,deny Allow from all </Limit> <LimitExcept GET POST OPTIONS> Order deny,allow Deny from all </LimitExcept> </Directory> ユーザー登録をして/home/ユーザ名/にpublic_htmlフォルダを作成して、index.htmlページを作り、http://localhost/~ユーザー名/index.htmlにアクセスしましたが、「403 Forbidden」となってしまいます。 http://127.0.0.1/~ユーザー名/でアクセスしても「403 Forbidden」になります。 フォルダやファイルのパーミッションをいろいろと変えてみましたが表示されません。 こちらはLinux勉強中の初心者です。 よろしくお願いします。

  • RedHat7.2 一般ユーザーのWEBを公開したい

    Apacheを使ってWEBを公開しようと思い、 本を参考にしながら設定してたのですが、行き詰まってしまいました。 http://****** とするとちゃんとindex.htmlが見れるのですが、 例えば***という一般ユーザーで、 /home/***/public_htmlを作成し、 その中にindex.htmlを入れ、 http://******/~** としたのですが、見ることができませんでした。 そこで過去の質問を参考にしながら、 httpd.confを設定しました。 すると、 http://******/~*** では見ることができないのですが、 http://******/~***/index.html とするとページを見ることができました。 本を見る限りでは、 http://******/~*** とするだけで見れると思うのですが、 これはどこを設定すれば良いのでしょうか?

  • ユーザーページの設定および公開について

    ユーザーページの設定および公開について教えてください。  /var/   + www/    + html/      + index.html  /home + test/    + public_html + index.htm http://aaaaaa.com/でindex.htmlが見れますが、 http://aaaaaa.com/~test/でindex.htmを見るためにはどうしたらいいですか? http://aaaaaa.com/~test/だと HTTP 404 - ファイル未検出 Internet Explorer が表示されます。 apacheのエラーログには [Sat Sep 24 22:04:00 2005] [error] [client 192.168.11.3] File does not exist: /var/www/html/~akaeda [Sat Sep 24 22:04:00 2005] [error] [client 192.168.11.3] File does not exist: /var/www/html/favicon.ico と表示されています。 documentrootは/homeに変更しているのですが、有効になっていないのでしょうか。 httpd.comの設定は DocumentRoot "/home" # This should be changed to whatever you set DocumentRoot to. # #<Directory "/var/www/html"> <Directory "/home"> # UserDir: The name of the directory that is appended onto a user's home # directory if a ~user request is received. # #UserDir public_html UserDir public_html と、しています。 なにか抜けているところがあればご教授お願いいたします。

  • apache2 ユーザーのページが表示されない

    こんにちは。 Fedora8でApache2を動かしています。 セキュリティではSELinexを使用しています。 Apache2でhttp://localhost/ のページはきちんと表示できるのですが、 ユーザーページ(http://localhost/~user/)が表示されません。 httpd.confのユーザーの設定はしてあります。 (モージュールも確認しました。) また、ユーザーページを指定しているフォルダ(/home/*/pubilc_html)も /home/user/pubilc_htmlを作ってあり、 pubilc_htmlの中に、index.htmlを配置してあります。 それなのに、ユーザーページにアクセスすると、404エラーが表示されてしまいます。 ファイルはあるのに、web上では無いよと言われます。 セキュリティの面が関連しているのかと思い、 動作を停止させてみましたが症状はかわりませんでした。 どのように対処すれば、ユーザーページを表示できるようになりますでしょうか? よろしくお願いします。