2009-02-09 7 views
1

J'ai un site Web personnel avec une installation MediaWiki sur un hôte partagé. La configuration Apache traite toutes les requêtes .php avec PHP 4, et toutes les requêtes .php5 avec PHP5.Redirigez tout le trafic .php vers les fichiers .php5

Pour des raisons de compatibilité, je dois pouvoir utiliser l'extension .php, mais MediaWiki n'est disponible que sur PHP5. J'ai essayé d'utiliser le moteur mod_rewrite, mais je suis coincé avec la règle.

Voici le fichier actuel:

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] 

L'idée de la règle était « Rediriger tout le contenu de index.php (non suivi de « 5 ») index.php5 ».

Une idée?


Edit:

SetEnv PHP_VER 5 

fonctionne, mais je suis toujours intéressé pourquoi la règle n'a pas été prise en compte.

Répondre

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

Je trouve cela sur le web site suivant qui peut être utile, vous pouvez la rendre plus spécifique et de supprimer le catchall changer seulement un certain nombre de fichiers .php si vous avez aimé.

Vous pouvez également le personnaliser pour ne l'adapter qu'à un certain répertoire en utilisant la condition RewriteBase.

0

Essayez cette

AddType x-mapp-php .php5 

Il est peut-être l'inverse, essayez cependant, je ne peux pas atm: S

+0

Bien essayé, mais il ne semble pas fonctionner (il peut être désactivé sur le serveur) – Luk

+0

On peut dire que , Je suis un Noob Apache complet donc je l'aurais peut-être mal fait. Je l'ai ajouté juste en dessous de la ligne DirectoryIndex, et l'ai essayé avec et sans ma règle. – Luk

2

je changerais hôtes, vous ne devriez pas avoir des applications PHP déclarent leur version après l'extension. C'était ghetto avec PHP3 et très ghetto et mauvaise pratique pour php5.

Bien que ce soit possible, c'est une mauvaise pratique et vous ne verrez probablement jamais une application OSS construite autour d'une convention de nommage d'extension de fichier php5. Je voudrais quitter pendant que vous êtes en avance et sauter sur un mauvais hôte - ne pas essayer et modifier la façon dont une application comme mediawiki est conçu pour fonctionner. Les hôtes que j'ai vu qui ont à la fois php4 et php5 vous permettent de choisir l'installation que vous souhaitez exécuter pour le domaine - ne pas le désigner avec une extension de fichier. Thats ghetto.

+0

Malheureusement, ce n'est pas une option :) (Je suis d'accord qu'ayant .php rediriger vers la version précédente n'est pas une bonne idée) – Luk

+0

comment se fait-il chaque fois que je lis des messages de personnes qui font des choses bizarres et loufoques ne bouge pas?Si vous le faites pour le plaisir, c'est une chose, si c'est quelque chose de sérieux, vous avez vraiment besoin de reconsidérer votre approche, sinon vous aurez des jours difficiles en avance sur vous. – Syntax

0

La valeur REQUEST_URI commence toujours par une barre oblique mais pas votre motif.

0

Cela semble fonctionner pour moi:

AddType application/x-httpd-php5 .php

Questions connexes