直接コースのURLにアクセスできない?(2.1.2)

直接コースのURLにアクセスできない?(2.1.2)

- Toshimi Hatanaka の投稿
返信数: 8

コースURLへのハイパーリンクでうまくいかないことがありましたので質問させてください。

パワーポイントやワード、PDFなどにハイパーリンクとして、あるコースのURLを貼付けました。たとえば、下のようなURLです。

http://xxx.com/course/view.php?id=5

このハイパーリンクをクリックすると、まずデフォルトブラウザが前にでて、ログインしていない状態だとログイン画面が表示されます。そこでログインするとトップページが表示されてしまい、指定したコース(id=5のコース)を開いてくれません。

一方ログインしている状態で、同様にハイパーリンクをクリックすると、添付のように「あなたはすでに <ユーザ名> としてログインしています。異なるユーザとしてログインするには、あなたはログアウトする必要があります。」というメッセージが表示され、「ログアウト」するか「キャンセル」するかを求められます。

ここで「ログアウト」するとログインページへ遷移します。「キャンセル」するとログインした状態でフロントページへ遷移します。いずれにしても、コースのトップページへはたどり着けません。

ブラウザで、直接上記のURLを入力すると、ログインしていれば、正しくそのコースのページが開きます。ログインしていなければ、一度ログイン認証を通過したあと、指定したコースのページに遷移してくれます。これが理想の動きだと思うのです。

開いているブラウザ以外からのハイパーリンクだと上記の現象が起きるようです。これは、何かのセキュリティの設定がかかっているからでしょうか?

環境は、サーバはMoodle v2.1.2(RHEL5)、クライアントはFirefox7(Mac)、IE8(Win)で試しましたが現象は同じです。

アドバイスを頂けると幸いです。

添付 loginrequired.png
Toshimi Hatanaka への返信

Re: 直接コースのURLにアクセスできない?(2.1.2)

- T N の投稿

私のところでは、リンクの名称が以下の様になっていて、理想の動きをしています。サーバはMoodle v2.1.2(Fedora15)で、確認したクライアントはFirefox7(Mac)、Safari5(Mac)、Chrome15(Mac)、IE9(Win7)です。

http://xxx.com/moodle/mod/resource/view.php?id=5

T N への返信

Re: 直接コースのURLにアクセスできない?(2.1.2)

- Toshimi Hatanaka の投稿

同様のURLで、コース内にあるリソースモジュールや活動モジュールを指定しても同じ現象でした。

リダイレクションやパスに何らかのセキュリティがかかっているような動きなんですが、それらしい設定項目が見つからなくて困っています・・・。

Toshimi Hatanaka への返信

Re: 直接コースのURLにアクセスできない?(2.1.2)

- Hiroyuki H の投稿

Windows 7 Ultimate SP1 (64bit) / Firefox 7.0.1 (HTTPの既定ブラウザとして設定)の環境で、Live HTTP HeaderというFirefoxのアドオンを使って検証してみました。

Microsoft Word 2010にて、 http://example.com/course/view.php?id=2  のようなハイパーリンクを設定した文書を作成し、そのリンクを Ctrlキーを押下しながらクリックしても、Firefoxはいきなり /login/index.php をGETするとことから始まります。これに対するサーバの応答は、HTTP/1.1 200 OK です。

FirefoxがMoodleのログイン画面を表示し、ユーザが入力したIDとパスワードをPOSTするのですが、そのPOST後のサーバの応答はHTTP/1.1 303 See Otherで、Locationとして/login/index.php?testsession=がまず返されます。これに従いFirefoxが/login/index.php?testsession=をGETすると、さらにサーバはHTTP/1.1 303 See Otherで、Locationとしてhttp://example.com/ を返します。これをGETすることで最終的にFirefoxはサイトのトップページを表示する、という動きをしています。この場合はご指摘のように、ログイン後もID2のコースには遷移しないようです。

 

一方、上記のMicrosoft Word 2010にて、当該文書をPDFとして保存し、このPDFを Adobe Reader X (10.0.1)で開いてリンクをクリックして開くと、Firefoxは/course/view.php?id=2 のGETから開始しています。これに対するサーバの応答は HTTP/1.1 300 See Otherで、/login/index.phpがLocationとして返答されています。

Firefoxがサーバ応答にしたがいページを遷移させ、ログインページを表示させると、HTTP1.1 200 OKが返されるので、それに対しIDとパスワードをPOSTするのですが、そのPOST後のサーバの応答はHTTP/1.1 303 See Otherで、Locationとして/login/index.php?testsession=X が上記と同様に返されます。これに従いFirefoxが/login/index.php?testsession=X をGETすると、さらにサーバはHTTP/1.1 303 See Otherで、Locationとして/course/view.php?id=2を返します。これをGETすることで最終的にFirefoxは/course/view.php?id=2としてコースを表示します。

 

というわけで、ご投稿の現象がPDFで発生することは確認できませんでしたが、そもそもブラウザにURLをどう伝えているか、という違いではないかと思います。少なくとも私の環境では、Moodle側の問題ではなく、Microsoft Word 2010の何らかの制限が原因のように感じます。

Hiroyuki H への返信

Re: 直接コースのURLにアクセスできない?(2.1.2)

- Toshimi Hatanaka の投稿

Hiroyuki H さま

深い調査ありがとうございます。そうですか、MS Office側に何かありそうですね。PDFにすれば問題なければ、当面のWORKAROUNDとして運用でカバーできそうです。こちらでもさらに検証してみます。

アドバイスありがとうございました。

Hiroyuki H への返信

Re: 直接コースのURLにアクセスできない?(2.1.2)

- Tatsuya Shirai の投稿

何気なくGoogleで検索したら以下の情報にたどり着きました.

http://www.i-site.jp/item/2941.htm

マイクロソフト社の提示する対策法

http://support.microsoft.com/kb/811929/ja

レジストリを書き換えろとのこと.無理.

Tatsuya Shirai への返信

Re: 直接コースのURLにアクセスできない?(2.1.2)

- Hiroyuki H の投稿

白井先生、情報ありがとうございます。ご提示頂いたマイクロソフト社の情報は、Office2007までのバージョンのようでしたので、示された手順の通りレジストリを操作しても当方の検証環境(64bitOSにOffice2010)では現象を改善することができませんでした。

そこで、提示されているレジストリ情報(ForceShellExecute)を元に検索したところ、下記の情報を見つけることができました。

http://support.microsoft.com/kb/218153/ja

こちらは、別の不具合についての対策を提示しているものですが、Fix itで修正されるレジストリは同じです。(64 ビット版 Windows 上の 32 ビット版 Office の場合はレジストリーキーの位置が違うとのこと)

このFix itを適用することで、現象が解消することは確認できました。しかしながら私も白井先生のおっしゃる通りこの対策をエンドユーザに求めるのは難しいだろう、という認識です。このようなハイパーリンクを利用しそうな教員には注意を促したいと思います。

Hiroyuki H への返信

Re: 直接コースのURLにアクセスできない?(2.1.2)

- Toshimi Hatanaka の投稿

ユーザPCのレジストリを書き換えろとは、非現実的なソリューションですね。

やはり共有文書はPDFに変換するよう指導する方向にします。

調査にご協力いただき、ありがとうございました。

Toshimi Hatanaka への返信

Re: 直接コースのURLにアクセスできない?(2.1.2)

- Tatsuya Shirai の投稿

MicrosoftUpdateで対応せいっとコメントを書きましょう!

しかし,私がコツコツと作成しているExcel上のリンク集はHTML形式で保存しているから気付かなかったけれども,これはかなり致命的なバグですね.