在Web根目录中安装Mediawiki的简短URL

Got*_*bel 3 php .htaccess mediawiki short-url

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

http://example.com/index.php?title=Main_Page
Run Code Online (Sandbox Code Playgroud)

我想更改它,以便短网址是

http://example.com/Main_Page
Run Code Online (Sandbox Code Playgroud)

我的配置如下

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

// LocalSettings.php
$wgScriptPath = "..";
$wgArticlePath = "/$1";
$wgUsePathInfo = true;
Run Code Online (Sandbox Code Playgroud)

但是,此配置出现500错误。

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

该文件夹包含几个子文件夹,例如,在这种情况下~/user_root/example,可以通过上面提到的URL进行访问example.com

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

$wgScriptPath = "..";
Run Code Online (Sandbox Code Playgroud)

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

Nem*_*emo 5

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

$wgScriptPath = "/";
Run Code Online (Sandbox Code Playgroud)

您的重写规则似乎也不是您想要的,尤其是^.*$ /index.php(尽管它可能无害,请紧随其后)。

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

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

来源