我在共享主机上安装了MediaWiki的个人网站。 Apache配置使用PHP 4处理所有.php请求,使用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
有效,但我仍然对为什么不考虑该规则感兴趣。
答案 0 :(得分:3)
RewriteEngine On
RewriteBase /
RewriteRule ^(.*)\.php $1.php5 [R=301,L]
RewriteRule ^(.*)\.php $1.php5 [L]
我在以下web site中找到了这个可能有用的内容,您可以使其更具体,如果您愿意,可以删除仅更改一定数量的.php文件的邮件。
您还可以使用RewriteBase条件对其进行自定义以仅适合某个目录。
答案 1 :(得分:2)
我会更改主机,你不应该让php应用程序在扩展后声明它们的版本。它是PHP3的贫民窟和非常贫民窟和php5的不良做法。
当然,这可能是不好的做法,你很可能永远不会看到围绕php5文件扩展名命名约定构建的OSS应用程序。
我会在你前进的时候退出并跳上糟糕的主机 - 不要试图改变像mediawiki这样的应用程序是如何构建的。我见过的有php4和php5的主机允许你选择你想为域运行的安装 - 不用文件扩展名来指定它。那是贫民窟。
答案 2 :(得分:0)
试试这个
AddType x-mapp-php .php5
可能是另一种方式,尝试一下,我不能解释:S
答案 3 :(得分:0)
REQUEST_URI
值始终以斜杠开头,但您的模式不是。
答案 4 :(得分:0)
这似乎对我有用:
AddType application / x-httpd-php5 .php