1

共有ホストにMediaWikiがインストールされた個人のWebサイトがあります。Apache構成は、すべての.phpリクエストをPHP 4で処理し、すべての.php5リクエストをPHP5で処理します。

互換性の理由から、.php拡張子を使用できるようにする必要がありますが、MediaWikiはPHP5でのみ使用できます。mod_rewriteエンジンを使おうとしましたが、ルールに固執しています。

現在のファイルは次のとおりです。

DirectoryIndex index.php5

RewriteEngine on


# This rewrites URIs in the form /pages/Article_Name to /index.php5?title=Article_Name.
RewriteCond %{REQUEST_URI} !^/pages/index.php5.*$ [NC]
    RewriteRule ^pages/?(.*)$ /index.php5?title=$1 [L]

# This is the broken rule
RewriteCond %{REQUEST_URI} ^index\.php(([^5])(.*))?$ [NC]   
    RewriteRule ^index\.php(([^5])(.*))?$ /index.php5?$1 [L]

このルールの考え方は、「すべてのコンテンツをindex.php(「5」が後に続かない)からindex.php5にリダイレクトする」というものでした。

何か案が?


編集:

SetEnv PHP_VER 5

動作しますが、ルールが考慮されなかった理由にまだ興味があります。

4

5 に答える 5

3
RewriteEngine On
RewriteBase /
RewriteRule ^(.*)\.php $1.php5 [R=301,L]
RewriteRule ^(.*)\.php $1.php5 [L]

私は次のWeb サイトでこれを見つけました。これは役に立つかもしれません。必要に応じて、より具体的にし、キャッチオールを削除して、特定の数の .php ファイルのみを変更することができます。

RewriteBase 条件を使用して、特定のディレクトリのみに合わせてカスタマイズすることもできます。

于 2009-02-09T22:03:51.217 に答える
2

私はホストを変更します。拡張後に PHP アプリケーションのバージョンを指定する必要はありません。それは PHP3 のゲットーであり、php5 の非常にゲットーであり悪い習慣でした。

もちろん可能ですが、これは悪い習慣であり、php5 ファイル拡張子の命名規則に基づいて構築された OSS アプリケーションを目にすることはほとんどないでしょう。

あなたが先に進んでいる間に私はやめて、悪いホストに飛び乗ります-mediawikiのようなアプリケーションが動作するように構築されている方法を変更しようとはしません. 私が見た php4 と php5 の両方を持つホストでは、ドメインに対して実行するインストールを選択できます。ファイル拡張子で指定する必要はありません。それはゲットーです。

于 2009-02-09T21:14:22.367 に答える
0

これを試して

AddType x-mapp-php .php5

それは逆かもしれませんが、試してみてください、私はatm:Sができません

于 2009-02-09T21:07:28.700 に答える
0

これは私にとってはうまくいくようです:

AddType アプリケーション/x-httpd-php5 .php

于 2009-04-02T19:02:33.707 に答える