3

I've just installed Mediawiki on Apache and I want the URL should be:

localhost/Main_Page/
localhost/Special:Recent_Changes
...

instead of:

localhost/index.php/Main_Page/
localhost/index.php/Special:Recent_Changes

I've tried many times and in many ways but it still doesn't work. Any suggest for a "exactly" what to do, step by step. Mediawiki docs didn't talk about .htaccess. It had only Nginx and lighttpd.

1

This MediaWiki documentation does talk about .htaccess.

2

You can have clean URLs with the following step.

Install the wiki into http://localhost/w and NOT into http://localhost/wiki then Modify the following in LocalSettings.php after you have set it up:

$wgArticlePath = "/wiki/$1";

In the ROOT directory place the following .htaccess file:

RewriteEngine on

## uncomment this rule if you want to redirect to http://localhost/wiki/Main_Page
# RewriteRule ^/$ /wiki/Main_Page [R]

## do the rewrite
RewriteRule ^wiki/?(.*)$ /w/index.php?title=$1 [L,QSA]
  • Although, the MediaWiki docs appear to warn against setting a title URL parameter in the rewritten URL: "be sure to never include ?title=$1 or something like it in the rewrite. Including a query will cause MediaWiki's built in handling to be overridden..." – MrWhite Feb 6 '18 at 22:42
1

Try the following code:

Options +FollowSymLinks
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/(.*)$ /mediawiki/index.php?title=$1&actions=$2 [L]
  • Although, the MediaWiki docs appear to warn against setting a title URL parameter in the rewritten URL: "be sure to never include ?title=$1 or something like it in the rewrite. Including a query will cause MediaWiki's built in handling to be overridden..." – MrWhite Feb 6 '18 at 22:42

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.