Manual talk:Short URL/wiki/Page title -- no root access

From mediawiki.org
Latest comment: 1 year ago by 2607:FEA8:9180:980:607F:D543:D208:6680 in topic Mediawiki & Wordpress

Possible Syntax Error[edit]

There appears to be a syntax error in the instructions to setup the .htaccess file.

There are 3 references to a path w/index.php?title but the rest of the document refers to wiki/ being the base path.

Changing the instances of w/ to wiki/ should get it working. --Paul D. 72.243.145.70 05:27, 15 October 2007 (UTC)Reply

Proposed Syntax Change[edit]

Rather than refer to wiki/ as being the directory, it might be better to use wiki_path/ with a callout that wiki_path is the location under public_html (or www) of your installation. --Paul D. 72.243.145.70 05:27, 15 October 2007 (UTC)Reply

I think it should be $wgArticlePath = "$wgScriptPath/wiki/$1"; --Alvin-cs 12:50, 10 November 2007 (UTC)Reply

This solution partially worked for me[edit]

I've got Apache2Triad installed with mediawiki in a htdocs/wiki directory. I had to take the basename code out as recommended and the wiki loads up, I can edit mainspace articles, but user:space, Special:space template:space doesn't seem to be operating - any ideas? en:user:joopercoopers--81.77.220.89 03:04, 3 November 2007 (UTC)Reply

Worked, but a problem[edit]

I had to changed index.php to php5 since on our host. That solved the issue, but we have a bigger problem - we have a forum installion within our public_html folder - thus, any links going directing to our .com are instead returning a 500 error.

Is there anyway to do the htaccess file WITHIN the wiki folder? --71.177.82.149 07:32, 1 December 2007 (UTC)Reply

Had to change a few things[edit]

Here's how my changed htaccess looks.

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^wiki/(.*)$ w/index.php5?title=$1 [PT,L,QSA] - Added the 5 to .php
RewriteRule ^wiki/*$ w/ [L,QSA] - Changed the second wiki/ with w/

This allows me to run it on the /wiki directory while having a forum in the main directory. --Mephisteus 17:36, 8 March 2008 (UTC)Reply

This worked for me! I am running on a GoDaddy Shared Hosting account, and changing my .htaccess file (in my root directory) to these exact contents made everything work perfectly.

This worked for me as well with a wiki hosted on a school linux server.

Clear browser cache.[edit]

You may need to clear your browser's cache before changes will take effect.

Not working[edit]

I still cannot get this to work. I've tried having my wiki in both a "w" directory, as well as a "wiki" directory. All I'm getting are 500 error messages. .htaccess is enabled on my site, as I regularly change URLs and such. I've really got no idea where the problem is coming from.

How to get this to work[edit]

I've got my wiki installed on wiki.example.com and it's in the root dir for this subdomain. How can I get this to work?

Okay got it, it's very easy and you only have to remove a few things. Enjoy!
1. Edit or create .htaccess in your document root directory (typically, public_html) with the following content.
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^wiki/(.*)$ /index.php?title=$1 [PT,L,QSA]
RewriteRule ^wiki/*$ wiki/ [L,QSA]
RewriteRule ^/*$ /wiki/ [L,QSA]

'RewriteCond' makes sure that existing files and directories are not rewritten, which would only apply if "wiki" was an actual directory, which it should not be (this will allow your wiki to work from the root without being in the "w" subdirectory, not "wiki"!). So the RewriteCond lines are, strictly speaking, not needed.

'RewriteRule' defines the rewrite; in the example above, '^wiki/(.*)' will invisibly load '/index.php?title=$1', where the page name after 'wiki/' will replace '$1'.

Also note that this does not work unless options +FollowSymLinks is enabled.

2. Add or edit the following setting in LocalSettings.php. This causes the HTML generated by MediaWiki to refer to "/wiki/Articlename" instead of the default.
$wgScriptPath = "/";         # Path to the actual files (right part of first rewrite rule). Should already be there
$wgArticlePath = "/wiki/$1";  # Virtual path (left part of first rewrite rule). MUST be DIFFERENT from the path above!

Root Access[edit]

Doesn't having to mess with followSymLinks and "AllowOverride None" defeat the purpose of this tutorial being made for people with no root access? — Preceding unsigned comment added by Mmagroup (talkcontribs)

The article mentions AllowOverride None at the end so that people whose .htaccess files aren't working will know what to ask their hosts. Being able to ask your host to change a setting is not the same thing as having root access. —Emufarmers(T|C) 21:18, 8 April 2008 (UTC)Reply

Improvement/source of problems?[edit]

With the help of richardk of http://forum.modrewrite.com/viewtopic.php?t=5463 I use the following rules to have the added side-benefit that old links to URLs using index.php are automatically redirected to the new URL scheme. This means that http://sitename/index.php/Main_Page will redirect to http://sitename/wiki/Main_Page . This is my .htaccess

Options All
Options -Indexes
RewriteEngine On
RewriteRule ^wiki/index.php(/(.*))?$ /wiki/$2 [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^wiki(/(.*))?$ w/index.php?title=$2 [QSA,L]

I notice that some things are broken - images or attachments retrieved through cached search engine results return 404s (well, wiki pages that don't exist). So the search result is http://sitename/wiki/images/e/eb/file.doc which is not there, but changing that to http://sitename/w/images/e/eb/file.doc allows one to retrieve the file correctly. Does that also happen with the generic rules, or is it a bug introduced by the rules I use which provide backwards compatibility? Apapadop 12:12, 9 April 2008 (UTC)Reply

Internationalisation[edit]

It seems the above rules do not allow other language versions of the wiki to work properly. It used to be the case that http://sitename/index.php/Main_Page had a Spanish counterpart of http://sitename/es/index.php/Portada . With the new URL scheme (http://sitename/wiki/Main_Page) one would expect http://sitename/wiki/es/Portada to work, but it is broken - points to a non-existing wikipage of the english wiki. Adjusting the LocalSettings.php within the w/es/ folder does not fix it... any hints? Apapadop 23:19, 20 April 2008 (UTC)Reply


Hi! Had the same problem, solved it by rewriting the URL for both the articles and the scripts.

In the LocalSettings.php I put:

$wgScriptPath           = "/w/sv";
$wgScript               = "$wgScriptPath/index.php";
$wgRedirectScript       = "$wgScriptPath/redirect.php";
$wgArticlePath 		= "/wiki/sv/$1";

And in the .htaccess I put:

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^wiki/sv/(.*)$ mediawiki/mediawiki-1.12.0/index.php/$1 [PT,L,QSA]
RewriteRule ^wiki/sv/*$ wiki/sv/ [L,QSA]
RewriteRule ^/*$ wiki/sv/ [L,QSA]
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^w/sv/(.*)$ mediawiki/mediawiki-1.12.0/$1 [PT,L,QSA]
RewriteRule ^w/sv/*$ w/sv/ [L,QSA]
RewriteRule ^/*$ w/sv/ [L,QSA]

I'm no mod_rewrite hacker, but it works! Maria --80.216.88.128 18:37, 16 June 2008 (UTC)Reply

Mediawiki & Wordpress[edit]

I can only seem to get the wiki to rewrite or the wordpress to rewrite properly. Does any one have any advise?

This is my .htaccess so far:

Options All
Options -Indexes
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteBase /                          
RewriteRule . /index.php [L]
RewriteRule ^wiki/index.php(/(.*))?$ /wiki/$2 [R=301,L]
RewriteRule ^wiki(/(.*))?$ w/index.php?title=$2 [QSA,L]

The following two lines from the above code snippet are for wordpress:

RewriteBase /                          
RewriteRule . /index.php [L]

Strmtrupr2 23:07, 26 April 2008 (UTC)Reply


Solution[edit]

What solved the problem to me was placing the code listed in Improvement/Source of Problems above Wordpress' ModRewrite rules. This is the way it looks for me (Wordpress 2.5.1 on root dir + MediaWiki 1.12.0 installed on /w dir + PHP 5.2.1):

<IfModule mod_rewrite.c>
Options All 
Options -Indexes 

RewriteEngine On 

RewriteRule ^wiki/index.php(/(.*))?$ /wiki/$2 [R=301,L] 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^wiki(/(.*))?$ w/index.php?title=$2 [QSA,L]
</IfModule>

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress

Rodrigolj 13:34, 8 May 2008 (UTC)Reply

Thank you so much!! 16 years later :) 2607:FEA8:9180:980:607F:D543:D208:6680 21:01, 1 August 2022 (UTC)Reply

MediaWiki/RewriteBase[edit]

Also note that on some webhosts, you need to add a RewriteBase to the .htaccess file for it to work. PseudoOne 01:50, 13 February 2009 (UTC)Reply

Slash at the beginning of real url[edit]

Compare

RewriteRule ^wiki/(.*)$ /w/index.php?title=$1 [PT,L,QSA]

with

RewriteRule ^wiki/(.*)$ w/index.php?title=$1 [PT,L,QSA]

The latter seems slightly more robust (if you move your wiki into a subdirectory, you don't need to change anything). Are there any disadvantages to it? --Tgr 16:47, 25 February 2009 (UTC)Reply

Configuration on a "wiki.domain.com" website[edit]

I have a wiki installed in a subdomain "wiki.mydomain.com" with no root access and a "httpdocs" folder

1. I left my .htaccess like this:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^wiki/(.*)$ /index.php?title=$1 [PT,L,QSA]
RewriteRule ^/*$ /wiki/ [L,QSA]»

And my LocalSettings.php file like this:

$wgScriptPath = ""; 
$wgArticlePath = "/wiki/$1";

--Yova 09:59, 6 March 2009 (UTC)Reply

Resolved-Help Me[edit]

Basically I did everything on the manual.

When I go on homepage it works. When I click on a link like news, it goes to www.example.com.wiki.news and it says oops no file there.

Help me

Sachein 16:32, 21 March 2009 (UTC)Reply

fixing old link format[edit]

This is mostly working for me, but I've got a new issue. In my previous configuration I had the wiki directory named '/wiki'. This guide frowns on that, so I renamed the directory to '/w/' and then made the changes to LocalSettings.php and .htaccess.

Connections to the new structure work fine now, but any links I created before this change are now broken.

I'm using these rewrite rules (the first one is the one I wrote myself to try to fix this issue)

RewriteRule ^wiki/index.php5\?title\=(.*)$ /w/index.php5?title=$1 [R,L]
RewriteRule ^wiki/(.*)$ /w/index.php5?title=$1 [PT,L,QSA]
RewriteRule ^wiki/*$ /w/index.php5 [L,QSA]


But that doesn't work. If I follow a URL from my previous configuration, like http://www.domain.com/wiki/index.php5?title=Page_Name, it takes me to http://www.domain.com/wiki/Index.php5, which is says is not a file. I think it might first go to the same URL with a lower-case 'i' in index.php5, then it forwards to the upper case version. None of this behavior makes much sense to me, which is par for the course on regular expressions.

I've tested that first rule out with online regular expression testers and it seems to be generating what I need it to. Maybe it's an issue with the flags? --Crutledge 18:56, 1 April 2009 (UTC)Reply

I get exactly the same problem described by Crutledge ! any ideas ?

&returnto= creates No Such Special Page error[edit]

I am on a shared host with WP and MediaWiki in a subdirectory (/community) - everything works fine except for the following situation. I'm using SocialProfiles extension and when a user receives a notification of a board posting in their email and clicks through to see it when not logged in, it sends them to the following url:

http://openforumfoundation.org/community/Special:UserLogin&returnto=Special:UserBoard

with the No Such Special Page error. At the same time, at the bottom of the error page, it includes the line:

Return to Special:UserBoard.

So it recognizes the returnto designation. If the full original url is entered, everything works as expected:

http://openforumfoundation.org/w/index.php?title=Special:UserLogin&returnto=Special:UserBoard

Similarly, if just the following is entered:

http://openforumfoundation.org/community/Special:UserLogin&

it gives the No Such Special Page error, but without the Return to Special:Userboard message (obviously).

Does this make any sense to anyone? Below is my full .htaccess:

<IfModule mod_rewrite.c>
Options All 
Options -Indexes 
 
RewriteEngine On 
 
RewriteRule ^community/index.php/(.*)$ /community/$1 [R=301,L] 
RewriteRule ^community/favicon.ico$ w/favicon.ico [L]
RewriteRule ^community/(.*)$ /w/index.php\?title=$1 [L,QSA]
</IfModule>
 
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
 
# END WordPress

Thanks --Wmburke 01:59, 6 June 2009 (UTC)Reply

Looks like a bug in SocialProfiles. —Emufarmers(T|C) 06:47, 6 June 2009 (UTC)Reply
I see of what you speak - I'll repost over there - thanks --Wmburke 14:09, 6 June 2009 (UTC)Reply

New info: the following works fine:

http://openforumfoundation.org/community/Special:UserLogin?returnto=Special:UserBoard

(the ? in place of the &) so it's not a SocialProfiles bug. It's a basic short URLs issue. I can't seem to find any references to this sort of problem however, and the solutions for the Ampersand problem discussed on the main page do not solve this.

Any suggestions on where I should look or what I should do? --Wmburke 19:46, 8 June 2009 (UTC)Reply

Can't Get It To Work[edit]

Hi- I use Joomla on my main public_html directory as a CMS and then installed my wiki to /wiki. I wanted to let people access the site through /staff but have MediaWiki installed to /wiki. I put the following into my .htaccess file on my public_html directory under all of the Joomla required-things:

RewriteEngine On
RewriteRule ^staff/(.*)$ /wiki/index.php?title=$1 [PT,L,QSA]
RewriteRule ^staff/*$ /wiki/index.php [L,QSA]

and I also added the following lines to the almost very bottom of my LocalSettings.php file:

$wgScriptPath = "/wiki";
$wgArticlePath = "/staff/$1";
$wgUsePathInfo = true;

I am doing something wrong at all or is there another setting I need to change somewhere to let it work? I've cleared my cache and still the URLs on the /wiki directory (where MW is installed) all redirect to the /staff directory and that directory comes up as a 404 on my server no matter what page you get redirected to. Please help! Thanks.

________

I have the identical problem. Please, help us!

-- Zoid 01:16, 30 December 2011 (UTC)

The short URL not work ...[edit]

Hello, i have a mediawiki on a host named "Free".

my wiki is http:*//jivacw.free.fr/wiki/ (remove * for see my wiki)

so i go to localsettings.php, i search this line: $wgScriptPath = "/wiki";

so i put $wgArticlePath = "/acwiki/$1"; $wgUsePathInfo = true;

and i go to htaccess and i put (above they are :

RewriteEngine On RewriteRule ^wiki/(.*)$ /w/index.php?title=$1 [PT,L,QSA] RewriteRule ^wiki/*$ /w/index.php [L,QSA] RewriteRule ^/*$ /w/index.php [L,QSA]

and when i go to the directory /wiki/ for see my wiki BANG!

500 Internal servor error

I boried please help me!

Well that's kind of normal. You say in the htacess that your wiki is based on the path "/w/" which doesn't exist at all. You need to replace "/w/" by "/wiki/" AND change the wiki/(.*) by acwiki/(.*) as it's the virtual folder you want to use. the same thing for wiki/*$
--kronoxt (d) 06:35, 12 August 2009 (UTC)Reply
by the way I'm not sure if free accept the Url rewriting engine... anyways.

Subpages Not Working[edit]

I have everything working fine except for subpages that use a "/". For example, http://mydomain.com/wiki/User:Euicho works but http://mydomain.com/wiki/User:Euicho/Sandbox fails with a 404. I can see why this is, but I do not know how to fix it. Does anyone else have this problem and/or a solution? Thanks! Euicho 20:00, 31 July 2009 (UTC)Reply

Well me it's working with subpages... maybe an error in the .htaccess configuration.
My htaccess looks like >

RewriteEngine On
RewriteRule ^w/(.*)$ /index.php?title=$1 [PT,L,QSA]
RewriteRule ^w/*$ /index.php [L,QSA]
RewriteRule ^/*$ /index.php [L,QSA]

It sure that if you use the method as described to make the base of the domain the virtual link
the virtual link "is" the main folder.... that won't work for subpages and there's no way to fix it to my knowledge. Well there's a way... replace (in the source code) the "/" for a "." for subpages like User:Frank.Sandbox but that's dangerous as you need to transform the source code. So that's one of the reason why your "/wiki/" need to be virtual. and I think the second alternative on the manual should be deprecated.
kronoxt (d) 06:23, 12 August 2009 (UTC)Reply

1and1, Domain Forwarding, (no root access)[edit]

It took me a long time to work out the solution, but I realized it all stemmed back to my Domain settings in the 1and1 control panel - I had the domain pointed to the directory "/w", where the mediawiki was installed, and the wiki site was loading and working fine (just with long URLs). Once I pointed the directory to the root "/", and some trial and error, the following worked for me:

LocalSettings.php
$wgScriptPath = "/w";
$wgScriptExtension = ".php";
$wgArticlePath = "/wiki/$1";
$wgUsePathInfo = true;
$wgLogo = "/w/skins/common/images/wiki.png";
.htaccess
AddType x-mapp-php5 .php ##<-this line req. for PHP5 to run (regardless of URLs)
RewriteEngine On
RewriteRule ^wiki/(.*)$ /w/index.php5?title=$1 [PT,L,QSA]
RewriteRule ^wiki/*$ /w/index.php5 [L,QSA]
RewriteRule ^/*$ /w/index.php5 [L,QSA]

BTW, I'm running 1.15.2. --DustinPaddock 03:52, 25 March 2010 (UTC)DustinReply


Well, yes thank you. To adjust the rootdirectory of the subdomain to a directory above the installation directory is the only way for 1und1. --Stexan 15:56, 28 September 2010 (UTC)Reply

Godaddy or Bluehost example[edit]

Are the Godaddy or Bluehost examples assuming that the name of your wiki is hindupedia? What is the purpose of those special instructions; why are they needed? Tisane 08:19, 17 May 2010 (UTC)Reply

Same Here. I can't seem to run it on Godaddy? Has anyone run it well on godaddy? cipals15 6 Oct 2010

B Rule on apache 2.2.7+[edit]

In the manual at Manual:Short URL/Ampersand solution it is suggested to add B to rules in .htaccess

Does not need /w and /wiki[edit]

The two can be the same, as demonstrated here. I have tested this for months, and it works fine.--Immewnity 21:10, 22 May 2011 (UTC)Reply

Excellent Article[edit]

This article contained very clear instructions, and I got my url shortened in no time. Whoever wrote this did a great job. 67.1.48.7 20:49, 23 September 2011 (UTC)Reply

For those of us with wiki farms on same server[edit]

I have my wiki in four languages, each with its own installation in separate directories: root -en.example.com -de.example.com so on

My host is Site5.com.

I added this to the bottom of LocalSettings.php of each installation:

$wgScriptPath = "";            # Physical path (right part of first rewrite rule). Should already be in LocalSettings.php
$wgArticlePath = "/wiki/$1";     # Virtual path (left part of first rewrite rule). MUST BE DIFFERENT from $wgScriptPath!
$wgLogo = "$wgScriptPath/wiki.png"; # I moved the wiki.png file from skins/common/images to the root of my wiki installation
$wgUsePathInfo = true;

See my note about the logo. I couldn't get the logo to appear. So I moved it to the root of the installation. This way it won't get written over during upgrades.

For .htaccess:

Obviously, I could not put the .htaccess in the server root (public_html), since there are four different wikis to rewrite for. So i put in following .htaccess inside each directory; I mean in the root of each installation.

RewriteEngine On
RewriteRule ^/?wiki(/.*)?$ /index.php [PT,L,QSA]
RewriteRule ^/*$ /index.php [L,QSA]

It seems to be working. Human-readable URL's are critical, in my opinion, for aesthetics, clarity, and SEO. Thank you for the info. --Ali.T Thu Dec 1, 2011, 12:40 Iran Standard Time.

How to use wiki.domain.tld/wiki/index.php[edit]

I trying to use this format, but I only see instructions for domain.tld/wiki/index.php or wiki.domain.tld/index.php. Can any help me about? — Preceding unsigned comment added by 83.165.239.99 (talkcontribs) 17:37, 8 February 2013‎

The instructions for Apache are Manual:Short URL/Apache. There is no difference between configuring a wiki for domain.tld and wiki.domain.tld. The server already takes care of differences between domains. And the path is the only thing that's relevant for rest of the rewrite stuff. Daniel Friesen (Dantman) (talk) 17:48, 8 February 2013 (UTC)Reply