• 締切済み

URLで/を付けない場合?

RedHat7.3を使用しています。 まったくといってどこを設定したらいいのかわからないので他のバージョンなどはとりあえず書いていませんが、とりあえず質問させていただきます。よろしくお願いします 通常URLを http://www.domain.com/123 と入力すると http://www.domain.com/123/ と同じように認識されるサイトがおおいですよね? これって現状のわたくしの設定では’/’がない場合「ページが表示できません」 になってしまうんです。 これを解消するにはどこをどうすればいいのでしょうか? それともうひとつFTPでクライアントからサーバーにアクセスしパーミッションが変更できません。CGIファイルを755などに変更しようとおもうのですがうまくいかないです。 どうかご教授おねがいします なにとぞ宜しくお願いします

みんなの回答

noname#191236
noname#191236
回答No.5

お使いのブラウザは何でしょうか?(バージョン等も) あと、httpd.conf 内の UseCanonicalName は ON|OFF|DNS のどれになっていましたか? 関係があるのかないのか分かりませんが、ここを変更してみてもできませんでしょうか・・・? 私が RedHat7.3 + Apache1.3系 で試してみたところ、 最後にスラッシュを入れなくても自動的にスラッシュが 付加されて通常通りアクセスできました。 その際、利用したブラウザは Microsoft Internet Explorer 6 SP1 です。 また、アクセス元はローカル内からです。(DMZに入れてないので (^^;ゞ 前回の回答に続き、お役に立てずにすみません。 m(_ _)m ※いかなる場合においても責任は負えませんので、全ては自己責任でお願いします。

noname#41381
noname#41381
回答No.4

確認ですが、 http://www.domain.com/123  の123をaliasで設定していませんか? 設定で回避できるかもしれませんが、aliasの場合「301 Moved Permanently」が返されずに すぐに「404 Not Found」が返ってきたような。 こうなると、ServerNameの設定も意味が無くなります。 apacheに詳しく無い時の思い出なので自信なしです...すみません。

bakusui
質問者

補足

>確認ですが、 >http://www.domain.com/123  の123をaliasで設定していませんか? そこまでの設定はしてないです。 たいへんありがとうございます。

  • mudpup
  • ベストアンサー率41% (17/41)
回答No.3

先日のアドバイスの追加です: うまく動作しなかったのですね。 自分のApacheで試そうとしたのですが、バージョンが2.xで、「/」が自動的に付加されちゃいました(Apache2にアップグレードするのも手かもしれませんね)。 それで、「Rewrite」関連の構文ですが、これとまったく同じものを、適用したいディレクトリ直下の .htaccess ファイルに書き込んで見てください。 ApacheのFAQでは、.htaccess に書き込む例として、次の例がありました(/~quux/というディレクトリのみに適用で、これをホームディレクトリの直下に置くという例です): RewriteEngine on RewriteBase /~quux/ RewriteCond %{REQUEST_FILENAME} -d RewriteRule ^(.+[^/])$ $1/ [R] もう一つ気になったのですが、Apacheの httpd.conf ファイルの中に、ディレクトリのエーリアスを設定する部分があるのですが、そこに、このようなことがコメントとして書かれていました(ザックリと訳しました): --translation start-- エーリアスを設定する場合、次のように設定します Alias fakename realname 例: Alias /icons/ "/usr/local/apache2/icons/" ただし、fakename の最後の部分に "/"をつけた場合、URLには、必ず"/"が必用になります。もし、fakenameが"/"で終わっている場合は、realnameも"/"が必用です。 --translation end-- 現在のhttpd.confの中に、"/"で終わっているエーリアスがあるとすれば、ここを変えれば直るかもしれませんね。 最後に、FTPの質問ですが、これは、リモートサーバーにFTPでアクセスして、リモートサーバー上のファイルのパーミッションを変更したい、ということですよね? これは、知っている限り、FTPではできないと思います。 やはりTELNETをご利用するのがベストだと思います。 mp-

bakusui
質問者

補足

apache2にアップしてみます。 でもわたしもデフォルトで自動的に/が付くときいたんですけどね・・ あと.htaccessを追加してみましたがダメでした

noname#191236
noname#191236
回答No.2

はじめに、一般人の言うことなのであしからず。(^^;ゞ Webサーバー・FTPサーバーそれぞれ何をお使いでしょうか? RedHat7.3標準?のApacheとwu-ftpdでしょうか? httpd.conf内の”ServerName”は適切に設定されていますか? また、http://www.domain.com/123と入力して表示した際、 www.domain.com の部分が別に置き換わったりしていませんか? 通常、http://www.domain.com/123 にアクセスして123というディレクトリが存在するならば、 自動的に http://www.domain.com/123/ と/が付け足されて表示されるらしいのですが・・・。(^^; 以下、参考URLです。 Webサーバホスト名の変更 項 http://www.atmarkit.co.jp/flinux/rensai/apache05/apache05b.html UseCanonicalName 項 http://www.hizlab.net/app/apache/global.html FTPに関してはguestのchmodが禁止されているからだと思います。 /etc/ftpaccess ファイルを開くと”chmod no guest,anonymous”という部分があるかと思います。 また、rootで接続すれば /var/www/html 内も他も変更可能です。 ただ、普通はFTPからrootでのログイン自体許可されていないと思うので、 /etc/ftpaccess,/etc/ftpuser等の設定を変える必要があると思います。 以下、参考URLです。 パーミッション変更設定(内容は下の方にあります。) http://www.m-net.ddo.jp/pc/file/ftp.htm rootでFTPログイン http://home10.highway.ne.jp/~rcb/hp/memo/wuftpd.html それでは。m(_ _)m

bakusui
質問者

お礼

お世話になります。返答おくれてすみません。 >Webサーバー・FTPサーバーそれぞれ何をお使いでしょうか? >RedHat7.3標準?のApacheとwu-ftpdでしょうか? そのとうりです >httpd.conf内の”ServerName”は適切に設定されていますか? ServerName www.maydomain.jp でOKですか? >また、http://www.domain.com/123と入力して表示した際、 www.domain.com の部分が別に置き換わったりしていませんか? 大丈夫です。置き換わりません。 >通常、http://www.domain.com/123 にアクセスして123というディレクトリが存在するならば、 >自動的に http://www.domain.com/123/ と/が付け足されて表示されるらしいのですが・ http://www.domain.com/123/ではページが表示できます。 ですから123というディレクトリは存在するということではないのでしょうか? >/etc/ftpaccess ファイルを開くと”chmod no guest,anonymous”という部分があるかと思います。 これはguestを削除したらうまくいきました。ありがとうございまう

  • mudpup
  • ベストアンサー率41% (17/41)
回答No.1

RedHat7.3でしたら、ウェブサーバーは、Apache 1.3でしょうね。 私も以前同じ疑問があったので、ウェブで調べて見ましたら、次の回答がありました(動作確認はしていません)。 解消方法: httpd.confファイルに次の構文を足します。 RewriteEngine on RewriteBase / RewriteCond %{REQUEST_FILENAME} -d RewriteRule ^(.+[^/])$ $1/ [R] これは、Apacheの mod_rewrite というモジュールを利用しますので、コンパイル時にこのモジュールが含まれている必要があります。 この構文の動作は: 1.URLの最後に"/"が無く 2.URLの「ファイル」が実はディレクトリであれば、 3.URLの最後に"/"を追加する この場合、"External Rewrite"というかたちで、リダイレクトが発生するそうです。 このときに、ServerName が設定されていないとエラーになる可能性があるので、ServerName構文(例: ServerName www.test.com)も設定するようにと書かれています。 この"/"の問題を分かりやすく説明したサイトがありましたので、参照URLにつけました(英語です)。 内容をまとめますと、基本的にURLを明記するときは、最後の部分がファイルでない限り、"/"をつけるべきだ、とのことです。 FTPでアクセスパーミッションを変更する、という件ですが、FTPではそのようなコマンドがないと思います(基本的にはファイル転送関連のソフトですから)。 ファイルパーミッションを変更するのでしたら、Telnetでアクセスして、chmod コマンドご利用すればできるはずです(ご自分が所有するファイルでしたら)。 mp-

参考URL:
http://www.riosconsulting.net/articles/trailingslash.jsp
bakusui
質問者

補足

早速ありがとうございます。ただ、やはりうまくいきませんね・・・ httpd.confの再起動をしてみるとエラーがでました。 RewriteBase: only valid in per-directry config files とでました。 >FTPでアクセスパーミッションを変更する、という件ですが、FTPではそのような >コマンドがないと思います(基本的にはファイル転送関連のソフトですから)。 >ファイルパーミッションを変更するのでしたら、Telnetでアクセスして、chmod >コマンドご利用すればできるはずです(ご自分が所有するファイルでしたら)。 ということはユーザーディレクトリのファイルではFTPのパーミッション変更は可能で、rootレベル(/var/www/html)内でのパーミッションは不可ということですか?

関連するQ&A