Перенаправить весь трафик .php в файлы .php5. - PullRequest
1 голос
/ 10 февраля 2009

У меня есть личный сайт с установкой MediaWiki на общем хосте. Конфигурация 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

работает, но мне все еще интересно, почему правило не было учтено.

Ответы [ 5 ]

3 голосов
/ 10 февраля 2009
RewriteEngine On
RewriteBase /
RewriteRule ^(.*)\.php $1.php5 [R=301,L]
RewriteRule ^(.*)\.php $1.php5 [L]

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

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

2 голосов
/ 10 февраля 2009

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

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

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

0 голосов
/ 02 апреля 2009

Мне кажется, это работает:

Приложение AddType / x-httpd-php5 .php

0 голосов
/ 10 февраля 2009

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

0 голосов
/ 10 февраля 2009

Попробуйте это

AddType x-mapp-php .php5

Возможно, все наоборот, попробуйте, я не могу: S

...