Reputation: 3290
I have a php website (laravel) that is set to the root of a subdomain using a virtualhost. So http://subdomain.website.com will go to the laravel website. I want to be able to go to http://subdomain.website.com/wiki and it will direct to the mediawiki install. To do this is setup an alias within the virtualhost.
<VirtualHost *:80>
DocumentRoot "/var/www/laravel/public"
ServerName sub.domain.com
Alias /wiki "/var/www/mediawiki"
Alias /w "/var/www/mediawiki"
<Directory "/var/www/laravel/public">
AllowOverride All
Options +FollowSymLinks
RewriteEngine On
</Directory>
</VirtualHost>
This is working exactly the way i want it to work, but there is an issue. I want to remove index.php from the url. So that "/wiki/index.php/Main_Page" becomes "/wiki/Main_Page".
I tried using http://shorturls.redwerks.org/ which i found in other guides, but it isnt working for me. Any code generated will produce wiki/wiki/Main_page and even at that the page throws an error.
The requested URL /wiki/wiki/Main_Page was not found on this server.
I have tried messing around with a large amount of different combinations with the url and cant get this to work. Since this website is a subdomain im not able to use wiki.domain.com. This wiki needs to be part of the subdomain. Anyone know what i need to do to make this work?
The end result i need is for this URL to bring me to the main page
Upvotes: 0
Views: 1971
Reputation: 24478
You need to have mod_rewrite enabled and then you can use rules like this to remove index.php. You can use this in your .htaccess in Wiki folder.
RewriteEngine On
RewriteBase /wiki
#redirect index.php to non index.php
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\ /(.*)index\.php
RewriteRule ^ %1? [R=301,L]
#internally rewrite request to index.php
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [L]
Update: Ordinarily this should work for typical CMS' however mediawiki itself has a unique because of the using wiki
and w
folders.
http://www.mediawiki.org/wiki/Manual%3aShort_URL/Apache
Depending on the mediawiki structure chosen, it would require a rule such as this
RewriteRule ^/?wiki(/.*)?$ %{DOCUMENT_ROOT}/w/index.php [L]
Upvotes: 2