3

我的 Web 根目录上运行了一个 Mediawiki 安装。例如,可以通过以下方式访问主页

http://example.com/index.php?title=Main_Page

我想更改它,以便短 URL 是

http://example.com/Main_Page

我的配置如下

#.htaccess
Options +FollowSymLinks
RewriteEngine On
RewriteRule ^(.*)$ /index.php?title=$1 [PT,L,QSA]
RewriteRule ^.*$ /index.php [L,QSA]

.

// LocalSettings.php
$wgScriptPath = "..";
$wgArticlePath = "/$1";
$wgUsePathInfo = true;

但是这个配置我得到一个 500 错误。

这是一个有~/user_root/文件夹的服务器。此文件夹包含用户根域的公共 HTML 文件,例如user-root.com.

该文件夹包含几个子文件夹,例如在本例~/user_root/example中,可通过上述 URL 访问example.com

问题是否基于此文件夹/子文件夹层次结构和$wgScriptPath设置?应该

$wgScriptPath = "..";

被这个相对路径以外的东西代替?请告知,如果您需要更多信息。

4

1 回答 1

5

是的,你$wgScriptPath错了。利用:

$wgScriptPath = "/";

你的重写规则似乎也不太可能是你想要的,尤其是那个^.*$ /index.php(尽管它可能是无害的,最后出现)。

如果您使用的是根 url 而不是普通的短 url,则需要使用以下内容(以确保现有文件和目录不被视为文章,例如“ /index.php”“ /images”等):

RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} !-f
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} !-d
RewriteRule ^(.*)$ %{DOCUMENT_ROOT}/w/index.php [L]

来源

于 2014-12-09T19:05:25.507 回答