4

MediaWiki リンクでコロンをエンコードしないようにローカルの IIS サーバーを取得しようとして頭を悩ませた後http://localhost/wiki/Category:People( http://localhost/wiki/Category$3APeople. 特に興味深いのは、両方のリンクが入力時に機能することです。それは、wiki 全体のすべてのリンクがエンコードされたバージョンとして表示されることだけです。どちらも機能するので、純粋に視覚的な煩わしさですが、可能であれば解決したい.

別の方法として、リンクの表示を変更するだけでよいのではないかと考えています。MediaWiki/IIS が URL のコロンのエンコードに固執している場合は問題ありませんが、実際のリンクが何であるかに関係なく、ユーザーにコロンを表示することは可能ですか?

データ ファイル ストリームへのアクセスを開くため、Windows サーバーの URL にコロンを使用できないことは理解していますが、これは私のローカル マシンで実行されているプラ​​イベート wiki であるため、可能であればこのセキュリティ対策を無効にすることに反対しません。

私はもともとこの質問を 6 月に MediaWiki ユーザー フォーラムに投稿しましたが、問題を解決するための助けはありませんでした。そのスレッドはhttp://www.mwusers.com/forums/showthread.php?18722-IIS-7.5-Percent-encoding-all-colons-in-URLsにあります。

どんな助けでも大歓迎です。

ありがとう。

4

2 に答える 2

2

編集:私の元の答えはまだ下にありますが、「仮定」が間違っていました。この問題は Ilmari's answer で説明されています。これは、IIS 7.0/7.5 に、コロンを含む URL を不正な形式/ハッキングの試みとして分類するという Microsoft が確認したバグがあるためです (そうではありません)。彼は、IIS 8.0 (Windows Server 2012) にアップグレードして解決することを提案していますが、それは確認されていません。

現在、マシンを Windows Server 2012 に移行中です。動作していることを確認できたら、この回答を更新します。

以下の元の回答。

--

私が見る限り、同じセットアップと構成ファイルを使用してWindowsで実行されているのはPHP 5.4であり、IISが行うのに対し、私のRedHatマシンはそれを行いません。FastCGI もそれを回避する方法かもしれません。

最初にアウトバウンド ルールを作成しようとしましたが、MediaWiki の特別な URL 要件を回避するために非常に多くの条件を作成する必要がありました。

したがって、とりあえずこのjqueryスニペットを入れることになりました。

$('a').each( function() {
  this.href = this.href.replace(/%3A/g, ":");
});

サイトマップ (これは新規インストールです) にたどり着いたら、そこからも解析されるようにします。

また、.NET as-u-mes はコロンが悪い文字であるため、コロンでもいくつかのセキュリティ違反エラーに遭遇したことに注意してください。これを回避するには、そのディレクトリで実行されている web.config ファイルに次を追加します。

<system.web>
    <httpRuntime requestValidationMode="2.0" 
        requestPathInvalidCharacters="&lt;,>,*,%,&amp;,\" />
</system.web>
于 2013-01-06T04:47:27.387 に答える