はじめまして。
こちらのサイトを参考にして、自宅にテスト用サーバを立てています。(いきなり公開サーバを作るのが怖かったので(^^;)
設定もまずまず順調だったのですが、ユーザディレクトリを作成して見たところ、ブラウザで、ユーザ名の後に「/」がないと、indexファイルが表示されません。
普通のサイトの場合、表示されていたように思うのです。
ルートの場合は、表示されています。
例えば、
http://192.168.10.100と入力すると、
http://192.168.10.100/と、自動的に「/」が入って
接続されているのですが、
http://192.168.10.100/home/userと入力すると、
http://192.168.10.100/home/user/とはならず、T
OPページも表示されません。
これは、なにか設定が足りないのでしょうか?
現在、ドメインはないので、ドメインの設定などはしていません。
それは関係ありますでしょうか?(ないような。。。)
設定が足りないとすれば、どういう点を設定するとよいのか、
アドバイス頂けませんでしょうか。
よろしくお願いします。
httpd.conf中で「DirectorySlash」という記述を探して、もしオフになっていれば
DirectorySlash On
と書き足してみてはどうでしょう。
その機能はデフォルトでリダイレクトされるようになっているのですが疑うとすれば上記(mod_dir)ですかねぇ・・・
Suzuakiさんこんにちは。
レスをありがとうございます。
> DirectorySlash On
を記述してみましたが、モジュールエラーが出てしまい、
(Syntax error on line 1219 of /etc/httpd/conf/httpd.conf:
Invalid command 'DirectorySlash', perhaps mis-spelled or defined by a module not included in the server configuration)
適用することができませんでした。
うーむ。。。
難しいですね。。。
> httpd.conf中で「DirectorySlash」という記述を探して、もしオフになっていれば
> DirectorySlash On
> と書き足してみてはどうでしょう。
>
> その機能はデフォルトでリダイレクトされるようになっているのですが疑うとすれば上記(mod_dir)ですかねぇ・・・
もしモジュールエラーであればhttpd.confに
LoadModule dir_module modules/mod_dir.so
AddModule mod_dir.c
の2つを書き加えればDirectorySlashが使えるようになるとはおもいます
たびたび、本当にありがとうございます。
アドバイス頂いた件、確認してみました。
> LoadModule dir_module modules/mod_dir.so
> AddModule mod_dir.c
どちらも設定できていました。
普通に、ルートサイトは、スラッシュなしでもアクセスできているので、ユーザサイトの部分だけの問題のようです。
問題があるとしたら、ここなのでしょうか?
<Directory /home/*/public_html>
AllowOverride FileInfo AuthConfig Limit
Options MultiViews SymLinksIfOwnerMatch 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>
ちなみに、ルートサイトの設定は下記です。
<Directory /home/httpd/html>
Options FollowSymLinks MultiViews IncludesNoExec
AllowOverride None
Order allow,deny
Allow from all
</Directory>
> もしモジュールエラーであればhttpd.confに
> LoadModule dir_module modules/mod_dir.so
> AddModule mod_dir.c
> の2つを書き加えればDirectorySlashが使えるようになるとはおもいます
自己レス、というか、追記です。
少し調べてみたのですが、
DirectorySlash
というのが設定できないのは、apacheのバージョンが、1.3だからでしょうか。
すると、、、2.0にアップグレードするのか(→そのまま2.0をインストール指定医のでしょうか?)、それとも、1.3のバージョンでDirectorySlashと同様の設定をすることはできますでしょうか?
(=ブラウザで入力の末尾に/がなくても、その場合にディレクトリと認識させる方法?)
何事も勉強、と思って必死に調べていますが、なかなか難しいものなのですね。教えて、ばかりで本当に申し亜訳ありません。お知恵をお借りできると大変助かります。よろしくお願いします。
> 少し調べてみたのですが、
> DirectorySlash
> というのが設定できないのは、apacheのバージョンが、1.3だからでしょうか。
おっと、その通りですね・・・失礼しました。
> すると、、、2.0にアップグレードするのか(→そのまま2.0をインストール指定医のでしょうか?)、それとも、1.3のバージョンでDirectorySlashと同様の設定をすることはできますでしょうか?
> (=ブラウザで入力の末尾に/がなくても、その場合にディレクトリと認識させる方法?)
詳しいことを言いますと301(location)コードでのリダイレクトが返される訳ですがApacheでは特に何もしなくても標準で有効になっている機能です。
1.3と2.0でディレクティブが代わることはありません。
# 2.0とは設定やモジュールの違いがあるので、単純に乗り換えるとつまづきやすいです。
どちらかといえばアクセス数が多いと安定するので用途別での使い分けでしょうね。
今、私のサーバ上のユーザサイトとバーチャルホスト、デフォルトルートで試してみましたがしっかりアクセスできました。
/home/httpd/htmlで301が有効ならば、やはりユーザ部だと思います。
<IfModule mod_dir.c>
DirectoryIndex index.html index.htm index.php
</IfModule>
こういった設定も入っているとは思いますし。
セキュリティ上により否定する人が多いですが、
あえて<Directory /home/*/public_html>のOptionsにIndexes を追加してみるとか・・・
> 何事も勉強、と思って必死に調べていますが、なかなか難しいものなのですね。教えて、ばかりで本当に申し亜訳ありません。お知恵をお借りできると大変助かります。よろしくお願いします。
いえいえ。最近増えている「とりあえず、よく分からんから百聞は一見にしかず」と努力しないで理解もしない人と違って努力がみられます。
努力する方を見ると貢献したいとも思いますし自分にとってもプラスに頑張る力が湧いてくるもんです。
スラッシュ省略時について質問されたのは過去にないので、あまり詳しくなくて申し訳ございません。
どうしても上手くいかない時は丸ごとApacheを再インストールするって方法も勿論あります
いつも、早いレスをありがとうございます。
結局、apache2.0をインストールして、気の遠くなるような作業の後(なぜなら、phpが動かなかったり、2.0になってファイルの在処が変わったり色々と大変だったもので)なんとかリダイレクトできるようになったようです。apache2.0だと、特別な設定がなくてもリダイレクトしてくれるようになっているようでした。(でも、正直、どんな設定したのか、詳しく覚えていません。。。情けなや。。。)
こちらでアドバイス頂いたDirectorySlashの情報などがとても参考になりました。
後は、「~」を使わないでAliasMatchさせたディレクトリでも、後ろの/なしで表示させたいのですが、こちらは、ちょっと休憩してからまたがんばってみようと思います。(でも、実は、もう「~」あってもいいかな。。。って思っています。さすがに。。。)
私は、こちらのサイトを参考に初めて自宅サーバを立てたサーバ超初心者なのですが、とても勉強になり、本当に助かりました。
長い時間おつきあい頂いてありがとうございました。(*^^*)
いえいえ。
> 結局、apache2.0をインストールして、気の遠くなるような作業の後(なぜなら、phpが動かなかったり、2.0になってファイルの在処が変わったり色々と大変だったもので)なんとかリダイレクトできるようになったようです。apache2.0だと、特別な設定がなくてもリダイレクトしてくれるようになっているようでした。(でも、正直、どんな設定したのか、詳しく覚えていません。。。情けなや。。。)
同じようで違うところが多いモノで仕方がないですね(しかし、よくシリーズを2.0に転換したものです)
設定は探せば色んなやり方が出てくるでしょう。というよりも
httpd.confのバックアップをとっておけば破損しても対処できます
> 後は、「~」を使わないでAliasMatchさせたディレクトリでも、後ろの/なしで表示させたいのですが、こちらは、ちょっと休憩してからまたがんばってみようと思います。(でも、実は、もう「~」あってもいいかな。。。って思っています。さすがに。。。)
本体はスラッシュで終わるのが正しいんですけどね。
個人的にはチルダがあったほうが所有情報の区別が出来て丁度いいです
http://www.itmedia.co.jp/help/tips/linux/l0464.html(備考)
いつも丁寧なレス本当にありがとうございます。
AliasMatch ^/([^/]+)/(.*) /Users/$1/Sites/$2
このイリアスマッチは、試してみたのですが、これだとフォルダの下にファイルがあって、ファイル名が出てないと、エイリアスされなかったのです;;;
おしりの「/」なしでリダイレクト、というのは、ユーザーサイトではできないのかな、と諦めていました。(^^;)
いただいた情報を参考にもう一度挑戦してみます!
ありがとうございました!m(_ _)m
> いえいえ。
>
> > 結局、apache2.0をインストールして、気の遠くなるような作業の後(なぜなら、phpが動かなかったり、2.0になってファイルの在処が変わったり色々と大変だったもので)なんとかリダイレクトできるようになったようです。apache2.0だと、特別な設定がなくてもリダイレクトしてくれるようになっているようでした。(でも、正直、どんな設定したのか、詳しく覚えていません。。。情けなや。。。)
> 同じようで違うところが多いモノで仕方がないですね(しかし、よくシリーズを2.0に転換したものです)
> 設定は探せば色んなやり方が出てくるでしょう。というよりも
> httpd.confのバックアップをとっておけば破損しても対処できます
>
> > 後は、「~」を使わないでAliasMatchさせたディレクトリでも、後ろの/なしで表示させたいのですが、こちらは、ちょっと休憩してからまたがんばってみようと思います。(でも、実は、もう「~」あってもいいかな。。。って思っています。さすがに。。。)
> 本体はスラッシュで終わるのが正しいんですけどね。
> 個人的にはチルダがあったほうが所有情報の区別が出来て丁度いいです
> http://www.itmedia.co.jp/help/tips/linux/l0464.html(備考)