0

ギャング、

長年のシステム管理者ですが、この優れたサイトへの投稿は初めてですので、お手柔らかにお願いします。

私はまだ REGEX が得意ではなく、社内でホストされている "mediawiki" サイトで 2 つのことを同時に行おうとしています。

それ以外は非常に単純なジェーン LAMP スタック (centOS 5.x、Apache 2.x、PHP 5.x) を実行しています。私たちはルートです。/etc/httpd/conf.d/wiki.conf を使用しており、.htaccess は使用していません。物理パスは /var/www/html/wiki/ です

以下のいくつかの組み合わせで部分的に成功した結果が得られましたが、そこまで到達するには十分ではありません. このサイトには、利用したいと思っている mod_write スタッドがいくつかあることを知っています。

  1. このレシピhttps://www.mediawiki.org/wiki/Manual:Short_URL/Apacheに従って、 URL を www.example.com/wiki/index.php?=title=Garden_Store から www.example.com に短縮しています。 /wiki/Garden_Store

  2. www.example.com/wiki/index.php?=title=Garden_Store の使用は引き続き許可され、ユーザーがその URL の構文を入力することを選択する必要があります。(mediawiki では、両方のスタイル URL を同時に使用することは可能だと思います。それが不可能な場合は、短い URL をスキップして、変数を含むスタイルを使用する必要があります。)

  3. 最後に、www.example.com/wiki/index.php?=title=Garden,_Store! のように、例の URL から特殊文字を文字列化します。これは www.example.com/wiki/index.php?=title=Garden_Store のはずです。

別の例としては、www.example.com/wiki/index.php?=title=Garden_Store,_Inc. www.example.com/wiki/index.php?=title=Garden_Store_Inc のはずです

最後の例として、私がうまくコミュニケーションしていることを確認するために、この "/title=Garden%20Store,%20Inc" を取得しますが、私が知っているように、この "/index.php?title=Garden%20Store%20Inc" が必要です。スペースは mediawiki 内でアンダースコアに置き換えられます。

初心者を最後の最後まで歩いてくれてありがとう。

乾杯。

ジェイソン

4

1 に答える 1

0

次のルールのようなものは、必要なことを行う必要があります。

RewriteRule ^(.*)\ (.*)$ $1\_$2 [L]
RewriteRule ^(.*)[^a-zA-Z0-9\/\._](.*)$ $1$2 [L]

最初のルールはスペースをアンダースコアに置き換え、他の行は結果の URL に残したくないすべての文字を取り除きます。必要に応じて、さらに追加する必要があることに注意してください。

于 2012-11-03T09:54:41.403 に答える