2009-02-09 6 views
1

У меня есть персональный сайт с установкой MediaWiki на общем хосте. Конфигурация Apache обрабатывает весь запрос .php с PHP 4 и все запросы .php5 с PHP5.Перенаправить все .php-трафик на файлы .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».

Любая идея?


Edit:

SetEnv PHP_VER 5 

работает, но я по-прежнему интересует, почему это правило не было принято во внимание.

ответ

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

Я нашел это на следующий web site, которые могут быть полезны, вы могли бы сделать его более конкретным и удалить Catchall изменить только определенное количество файлов .php, если вам понравилось.

Вы также можете настроить его только в определенном каталоге, используя условие RewriteBase.

0

Попробуйте

AddType x-mapp-php .php5 

Это может быть наоборот, попробовать это, хотя, я не могу атм: S

+0

Хорошая попытка, но это не похоже на работу (она может быть отключена на сервере) – Luk

+0

Можно утверждать , Я полный Apache noob, поэтому я, возможно, сделал это неправильно. Я добавил его чуть ниже строки DirectoryIndex и попробовал его с моим правилом и без него. – Luk

2

Я хотел бы изменить хостов, вы не должны иметь PHP приложения излагают свои версия после расширения. Это было гетто с PHP3 и очень гетто и плохая практика для php5.

Хотя, конечно, это возможно, это плохая практика, и вы, скорее всего, никогда не увидите приложение OSS, основанное на соглашении об именах расширений файлов php5.

Я бы ушел, когда вы были впереди, и прыгнул с корабля на плохой хост - не пытайтесь изменить способ создания приложения, как mediawiki. Хосты, которые я видел, которые имеют как php4, так и php5, позволяют выбрать, какую установку вы хотите запустить для домена, а не указывать с расширением файла. Это гетто.

+0

К сожалению, это не вариант :) (Я согласен с тем, что перенаправление .php на предыдущую версию не является хорошей идеей) – Luk

+0

как всегда каждый раз, когда я читаю сообщения людей, которые делают странные и сумасшедшие вещи, чтобы заставить их работать на своем веб-хостинге, они выиграли Не двигайся?если вы делаете это ради удовольствия, это одно, если это что-то серьезное, вам действительно нужно пересмотреть свой подход, иначе у вас будут грубые дни перед вами. – Syntax

0

Значение REQUEST_URI всегда начинается с косой черты, но у вашего шаблона нет.

0

Это, кажется, работает для меня:

AddType применение/х-HTTPD-php5 .php