- 締切済み
ユーザディレクトリの意味を表す"~"(チルダ)を消す
こんばんわ。 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)を除外することは可能でしょうか。教えていただけると幸いです。 長文失礼しました。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- umasikajiro
- ベストアンサー率67% (545/803)
方法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/ユーザー名/ になってしまいます