MediawikiでURLを正常にマスクしました。 。htaccessの次のスクリプトとMediawikiのlocalsettings.php
ファイルを使用して、つまり:
。htaccess:
Options +FollowSymLinks
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/(.*)$ /mediawiki/index.php?title=$1&actions=$2 [L]
Localsettings.php:
$wgScriptPath = "/lib/mediawiki";
$wgArticlePath = "/lib/mediawiki/$1/$2";
必要なURLで正常に機能しています。しかし、私の問題は、2番目のパラメーターをページのクエリ文字列として考慮することです。しかし、ファイルで2番目のパラメーターを取得できませんでした。 $wgrequest
関数で試しましたが、最初のパラメーターはtitle
としてのみ与えられています。 $_REQUEST
でも試しましたが、$_REQUEST['actions']
の値を与えることもあります。しかし、何度もそうではありません。何が問題なのか理解できません。
私はあなたがこのような何かのために$_REQUEST
を使うべきではないと言うことから始めます、それはURL文字列からだけでなく、それが設定される方法に応じて$_POST
データと$_COOKIE
データ。これは、多少のセキュリティリスクを意味します。
URLから取得するときに$_GET
変数($_GET['actions']
)を使用することをお勧めします。アクションが設定されているか設定されていないことがわかっている時間に対してテストします。
何が起こっているのかは、.htaccess
ファイルが正常に見えるという事実に基づいて、このパラメーターが設定されていないURLにアクセスしていることを想像します。この場合、私がお勧めするのは、空白の場合に何らかのデフォルトアクションを設定することです。
$actions = isset($_GET['actions']) ? $_GET['actions'] : 'my_default_action';
また、これをクリーンアップするか、何らかの方法でホワイトリストに登録するまで、$_GET
からの何かを信頼しないようにするために、これに何らかのセキュリティを投入することもできます。