2016-04-27 8 views
0

最近、私はHostGatorでホストされているサーバーにMediaWiki 1.23.9をインストールしました(私はそう思っています)。私はそれをすべて設定して、きれいなURLを取得して実行しています。アクションURlsも正しく書き直して、すべてがうまくいきました。しかし、アンカーリンク、特に自動生成されたセクションヘッダーはあまりにもきれいではないことに気付きました。私は何らかの理由で「ドットエンコーディング」を受けます。私は100%確実ではありません。セクションアンカー内のMediaWikiエンコーディングを中止する

この結果、/w/MyPage#Section_1_(Stuff_Here)/w/MyPage#Section_1_.28Stuff_Here.29になります。

括弧が有効なURI文字である(実際、ページタイトルで使用されている場合は、URIに正しくエンコードされていません)、なぜこれが起こっているのか、どのように停止するのかわかりません。あらゆる種類のバグレポートを見て、MediaWikiのソースを見てみようとしました。エンコードを実行する関数が見つかりましたが、括弧がエンコードされるべきではないことがわかります。

私の質問は、MediaWikiがセクションヘッダアンカーのかっこをエンコードしないようにする方法はありますか?それに失敗すると、.htaccessルールを使ってこの動作を隠すことができますか?参考までに、私の現在の.htaccessファイルは下にありますが、私はそれをマスキングするよりもむしろオフにしたいと思っています。

RewriteEngine On 
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} !-f 
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} !-d 
RewriteRule ^(.*)$ %{DOCUMENT_ROOT}/w/index.php [L] 

RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} !-f 
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} !-d 
RewriteRule ^/?w/images/thumb/[0-9a-f]/[0-9a-f][0-9a-f]/([^/]+)/([0-9]+)px-.*$ %{DOCUMENT_ROOT}/w/thumb.php?f=$1&width=$2 [L,QSA,B] 

RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} !-f 
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} !-d 
RewriteRule ^/?w/images/thumb/archive/[0-9a-f]/[0-9a-f][0-9a-f]/([^/]+)/([0-9]+)px-.*$ %{DOCUMENT_ROOT}/w/thumb.php?f=$1&width=$2&archived=1 [L,QSA,B] 

注:This answer to a different questionそれから括弧を除外しないようにどのようにかかわらず、「ドットエンコーディング」プロセスは、何であるかを簡単に説明します。

+1

[ '$ wgExperimentalHtmlIds'](https://www.mediawiki.org/wiki/Manual:$wgExperimentalHtmlIds)を試してみてください。 – Tgr

+0

@Tgrチャームのように働いた!答えとして再投稿し、私はそれを受け入れるでしょう! –

答えて

1

MediaWikiは、HTML4 restrictionsを尊重するセクションIDをエンコードします。これはMediaWikiが最近HTML5を使用しているため、これらの制限を取り除いた過去の遺物です。 $wgExperimentalHtmlIdsをtrueに設定すると、MediaWikiはHTML5の規則(空白のみを変換する必要がある)に従うようにすることができます。

これは「実験的」と呼ばれています(この設定は2010年に導入されました)ので、HTML5のブラウザサポートはやや信頼性がありませんでした。今日はそれはおそらく大丈夫ですが、誰も実際にテストしたことはありませんので、自己責任で使用してください。

+0

ありがとう!オプションの周りの背景のビットも非常に面白いです! –

関連する問題