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)
被这个相对路径以外的东西代替?如果需要更多信息,请告知。
是的,你$wgScriptPath错了。使用:
$wgScriptPath = "/";
Run Code Online (Sandbox Code Playgroud)
您的重写规则似乎也不是您想要的,尤其是^.*$ /index.php(尽管它可能无害,请紧随其后)。
如果您使用的是根网址而不是普通的短网址,则需要使用以下内容(以确保现有文件和目录不被视为文章,例如“
/index.php“”/images“等):Run Code Online (Sandbox Code Playgroud)RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} !-f RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} !-d RewriteRule ^(.*)$ %{DOCUMENT_ROOT}/w/index.php [L]
(来源)