Manual talk:Short URL/Old discussion page

This article is getting too long -- please use subpages
The article is getting unreadable, unmaintainable, long and confusing.

''Please use subpages -- please write separate maintainable Short URL how to solutions on subpages per pagenaming scheme described on Manual:Short URL overview and link to such pages there. A separate subpage per Short URL how to will be more readable and maintainable. We need to do this because of the numerous solutions -- management of complexity. Thanks for your help -- please put your own solution on a subpage! See Manual:Short URL overview for how to name subpages and link to them there. That page will become the new Manual:Short URL page once sufficient Short URL solution subpages, including yours, are created. Thank you!'' :-) --Rogerhc 06:52, 3 September 2007 (UTC)

Which is better?
Right at the top it says "These methods assume that you don't have access to the server configuration (for example, if you're on a shared host); if you do, see 'Root access' below." That phrasing kind of implies that if you do have root access you should take advantage of it and use the second method. Is that correct? Is one method better than to the other? The non-root directions seem simpler, and for a low-traffic site, performance and efficiency are not issues.

How I can configure for xampp
I have folder wiki in htdocs. How I can access to russian articles without index.php? 83.219.129.26

MediaWiki 1.82 .htaccess method for wikis stored in subfolder of root
I have gotten Mediawiki Pretty URLs to work here at by using this configuration. I have my wiki in the wiki5 folder. I'm running, MediaWiki 1.82

Add to .htaccess

AddHandler application/x-httpd-php5 .php

The above line directs all php files to processed using PHP5

RewriteCond %{HTTP_HOST} ^muscatelli.info/wiki5 RewriteRule ^(.*)$ http://www.muscatelli.info/wiki5/$1 [r=301,L]
 * 1) Redirect http://muscatelli.info to http://www.muscatelli.info

Note: the above is used to redirect all addresses with the www removed to [www.muscatelli.info] to help Google Ranking and is not necessary for the code to work! Also note that my wiki is in the directory: wiki5

RewriteRule ^[^:]*\. - [L] RewriteRule ^[^:]*\/ - [L] RewriteRule ^/*$ /wiki5/index.php?title=Main_Page [L,QSA] RewriteRule ^(.+)$ /wiki5/index.php?title=$1 [L,QSA]
 * 1) anything that contains a dot without a colon should be left alone
 * 1) anything that contains a slash without a colon should be left alone
 * 1) redirect to main page
 * 1) anything else is to be treated as a title
 * 1) anything that contains a slash is to be left alone.

Change in LocalSettings:

$wgArticlePath     = "$wgScriptPath/$1";

Rewrite Okay, recognition not
Heyho,

i have tried various rewrite methods now, including the one mentioned above. So, now the rewriting itself works fine, but the wiki refuses to notice the move (LocalSettings.php was modified too), instead keeps telling me that https://server_name/wiki/Main_Page could not be found. However, when manually entering index.php?Main_Page instead of just Main_Page it works fine again, so i assume the problem is limited to the wiki itself. Any ideas how to solve it?
 * I have exactly the same problem. --194.19.86.146 10:08, 14 February 2007 (UTC)

Excactly the same Problem. --87.123.135.136 22:04, 19 February 2007 (UTC)
 * I have the same probleme--86.193.126.194 00:25, 15 April 2007 (UTC)

Problems with post data
Hello,

I followed the directions in this article to create a short url using apache RewriteRules. Everything worked easily, except for the fact that I cannot seem to login to my wiki anymore. Whenever I attempt to login I am presented with the same login form, with my data erased. After digging into the code a little bit, I found that the post data is getting lost somewhere in the redirect. Has anyone else encountered this problem? If so, what steps did you take to overcome it? 66.194.253.20 20:12, 20 February 2007 (UTC)

Couple of questions???
When I am trying the rewrite or the alias methods, What else should be in my .htaccess file besides what I am supposed to be adding? Should I put the .htaccess file in the public_html folder or public_html/w/ which is the folder I have the wiki in? When looking the the localsettings.php I see $wgScriptPath should I change = "/w"; or add the $wgArticlePath = "/wiki/$1"; I seem to be a little lost on this.


 * .htaccess should go in public_html
 * Leave $wgScriptPath alone
 * robchurch | talk 01:57, 21 July 2007 (UTC)

Trailing slash
I have a problem with the rewrite conditions when a page is accessed with a trailing slash. MediaWiki sees it as a different page - (Named Page/ instead of Page). What's the "right" way to get around this? Currently I'm doing a preg_replace on $GLOBALS[_REQUEST]['title'] in my LocalSettings.php, but this seems less than ideal.

~/web_root/.htaccess
Options FollowSymLinks RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.+)$ index.php?title=$1 [L,QSA]

~/web_root/LocalSettings.php
$wgArticlePath = "$wgScriptPath/$1"; $GLOBALS['_REQUEST']['title'] = preg_replace("/^(.+)\/$/", "$1", $GLOBALS['_REQUEST']['title']);

- Trevor Wennblom 21:33, 20 March 2007 (UTC)

Slash "\" in page title breaks the page
http://bugzilla.wikimedia.org/show_bug.cgi?id=9551

Using the short-URL method causes slashes "\" not to work in URLs. This is with Apache 2.2 on Windows 2003 server. Maiden taiwan 18:38, 10 April 2007 (UTC)

Help with Rewrite mode.
I have done the rewrite mode and when i try to enter the website to the index.php without the file name it redirects me to the wiki. What happened?

That rewrite code didn't work for me!!
I had the wiki files installed http://www.domain.ext/hebrew/w/

Instead of having that ugly http://www.domain.ext/hebrew/w/index.php?title=Main_Page

I wanted to forward http://www.domain.ext/hebrew/wiki/Main_Page

The subdirectory business gave me a hell of a headache

After many pints of beer, I managed it with the following code in public_html/.htaccess: RewriteEngine On RewriteBase /hebrew RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^hebrew/wiki/(.*) w/index.php?title=$1 [PT,L,QSA] RewriteRule ^hebrew/wiki/*$ wiki/ [L,QSA] RewriteRule ^/*$ wiki/ [L,QSA] I do hope this helps somebody, so that I didn't yank mi hair for nothing. --89.0.123.140 22:42, 6 May 2007 (UTC)
 * Replace "hebrew" with your subdirectory name.


 * Oh, and I also edited LocalSettings.php for the internal wiki redirection to work:
 * $wgScriptPath = "/hebrew/w";
 * $wgArticlePath = "/hebrew/wiki/$1";
 * Voila. --89.0.123.140 22:50, 6 May 2007 (UTC)

Same problem here. On a Redhat (7)? system running httpd-2.0.40-21 and CGI-PHP, Alias directives didn't pass the variables to the script (no title=Article is a problem). The article says to use: RewriteEngine On RewriteLog /var/log/httpd/rewrites.log # my addition RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule (.*)/wiki/(.*) $1/w/index.php?title=$2 [PT,L,QSA]

but, this only generated File does not exist: &lt;path_to_html&gt;/wiki/Main_Page errors, and rewrites.log remained empty. Adding AllowOverride FileInfo into directory &lt;path_to_html&gt; and using the above .htaccess worked beautifully.

My .htaccess is the following: RewriteEngine On RewriteBase / RewriteCond %{REQUEST_URI} ^/wiki$ RewriteRule ^(.*) /w/index.php?title=Main_Page [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^wiki/(.*) w/index.php?title=Main_Page

CSS are not loaded properly anymore after manipulation
Everything is working ok except that the css sheets are not loaded, it seems that I have a problem with the skin...

solution
I think the Alias code given is wrong, and incomplete. The part about /index.php is useless, and you need an alias for skins before the alias for index.php. The following worked for me so far (Alias method, with root access)

Alias /wiki/skins "/path/to/w/skins/" Alias /wiki "/path/to/w/index.php"

on Allowing for escaped characters in URI
Is the stuff written there a solution for all escaped characters? I'd need ü,ö,ä,ß,+. Jan

Wiki installed in root on a subdomain.
My wiki is installed in /home/sites/360-fan.net/wiki/ and I use the domain http://wiki.360-fan.net.

What would be the correct settings for me to use if I want http://wiki.360-fan.net/$1?

Please add the answear either here, or send it to birger(underscore)nord (at) hotmail dot com.

Special Pages Fail
After using: RewriteEngine On RewriteCond %{REQUEST_URI} ^/wiki$ RewriteRule ^(.*) /wiki/index.php?title=Main_Page [L] RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^wiki/(.*) wiki/index.php?title=$1 [PT,L,QSA] It works but whenever clicking on a special page or template page it fails.. any ideas why?


 * I have the same problem. I am running it on my personal computer using WAMP5 1.7.2 with PHP 5.2.3 and MySQL 5.0.41. 68.173.194.2 00:15, 21 July 2007 (UTC)

Difficulty with rewrite
Hi all,

Bear with my noobishness. I'm not particularly skilled with servers. On the website I'm helping with, RationalWiki, MediaWiki is installed directly into public_html. The rewrite doesn't seem to work, is that a result of the placement of the files? --Linus M. 16:35, 26 May 2007 (UTC)


 * Arr, I was too lazy to read all of the docs. Never mind. --Linus M. 21:15, 9 June 2007 (UTC)

Small problem
I decided to go ahead and use the subdomains with no subdirectory in article url option, however I end up with a slight problem (and this might be my lack of expertise with a .htaccess). You can access the wiki perfectly if you include in the url /Main_Page (so if you go to http://wiki.example.com/Main_Page, everything is displayed properly). However, if you go to http://wiki.example.com/, you are automatically redirected to http://wiki.example.comhttp//wiki.example.com/Main_Page, which is, you know, weirding me out.

Any suggestions?

[Update]: The issue seems to also include edits and random pages. The edit goes through, but redirection doesn't. I'm still returned to http://wiki.example.comhttp//wiki.example.com/Main_Page.

24.159.57.176 14:56, 28 May 2007 (UTC)

Problem with Lighttpd Rewrite and character "/" in page name
Hello,

I am using "Templates/Languages" to get several language versions displayed in my wiki pages. Creating a site in another language, it is done by "Page_Name/language" (e.g. Main_Page/de).

This - however - results in 404-Error, when using the given Rewrite Code from this manual.

Any hints?

Fixing redirection
I noticed a strange problem whereby any page with title ending in the letter "k" gave a "404 Not found" error upon clicking "Save page" and subsequently whenever trying to access that page (e.g. via search).

The configuration of the MW1.10 installation (PHP5, Apache2, with root at /var/www/</tt>), located at /var/lib/Wiki/</tt>... first, LocalSettings.php</tt>:

$wgSitename        = "WBM";

$wgScriptPath      = "/wiki"; $wgScript          = "$wgScriptPath/index.php"; $wgRedirectScript  = "$wgScriptPath/redirect.php";

$wgArticlePath     = "/wiki/$1";
 * 1) For more information on customizing the URLs please see:
 * 2) http://meta.wikimedia.org/wiki/Eliminating_index.php_from_the_url
 * 3) If using PHP as a CGI module, the ?title= style usually must be used.
 * 1) $wgArticlePath     = "$wgScript/$1";
 * 2) $wgArticlePath     = "$wgScript?title=$1";

next /etc/apache2/conf.d/mediawiki.conf</tt>

Alias /wiki "/var/lib/Wiki"

<Directory /var/lib/Wiki/> SSLRequireSSL Options +FollowSymLinks AllowOverride All order allow,deny allow from all </Directory>

<Directory /var/lib/Wiki/config> Options -FollowSymLinks AllowOverride None </Directory> <Directory /var/lib/Wiki/upload> Options -FollowSymLinks AllowOverride None </Directory>
 * 1) some directories must be protected

Finally, /var/lib/Wiki/.htaccess</tt>:

RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*[^wiki/])/?$ /wiki/index.php?title=$1 [QSA,L]

Te problem was taking dodgy advice while not thinking too much about how the rewrite works. I still haven't found a really good explanation of mod_rewrite but the regex ^(.*[^wiki/])/?$</tt> was the likely culprit. This was looking for a string at the start of the URL that did not contain the characters w, i, k and /. On further testing, any page created in the wiki ending with a w, i, or k was causing problems. Removing the "wiki" to just

RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*[^/])/?$ /wiki/index.php?title=$1 [QSA,L]

seems to have worked so far. Hoogs 05:29, 11 July 2007 (UTC)

Can IIS display short URLs?
Does anyone know how to configure IIS to display short URLs? The instructions in the article require modifying the .htaccess</tt> file but there isn't such a file in IIS. I'm running IIS 6.0 on Windows Server 2003 R2. --Lorikeet 13:20, 18 July 2007 (UTC)

That is a very good question. I am also running Mediawiki on IIS 6 / Windows 2003 Server and having the same problem : there is no .htaccess in IIS! Is there any solution to use short url with Micrsoft's web server? --stefor


 * Someone has graciously provided us with instructions for doing this. See the new section that's been added to the manual. I'll try it out and let you know how it goes. --Lorikeet 23:06, 2 August 2007 (UTC)

Trying to upgrade from 1.6 but stuck with existing links
Can anyone help - I am using 1.6.8 and have lots of links to the wiki in the style /wiki/index.php/article

On my shared server, PHP5 is only available as CGI. I don't care how ugly the links are, I just need to redirect /wiki/index.php/article to (I presume) /wiki/index.php?title=article

--Apotts 17:49, 30 July 2007 (UTC)
 * I'd try changing your $wgArticlePath to the default in LocalSettings.php, which is:
 * $wgArticlePath = "{$wgScript}?title=$1";</tt>
 * but if that doesn't work, put this in your .htaccess file to do the rewrite you requested:

RewriteEngine On RewriteBase / RewriteRule ^wiki/index\.php/(.*) wiki/index.php?title=$1 [PT,L,QSA]
 * &rarr; Tim Laqua <sup style="font-size: 80%;">Talk | contribs  <sub style="font-size: 80%;">@02:04, 31 July 2007 (UTC)

mod rewrite slash/ampersand problem
What is the way round this? I see that pages on wikipedia.com can have these characters with no problem. 84.64.106.164 21:33, 22 August 2007 (UTC)

PHP as CGI module: solutions & settings
I'm running PHP5 as a CGI module, which means I had to do some complicated things (slightly) to get Short URLs working on my system. I'm also running Wiki on a shared server, which means I don't have root access. Here's what I did to get the Short URLs working properly:


 * Note, everything that says "wikific" replace with your installation's directory. My entire wiki is installed in a subdirectory of my main directory-- in other words, one folder below public_html. This folder also functions as a subdomain, but you don't have to have that feature enabled for this to work. (For reference, my installation is at http://seventh-star.net/wikific)

For your convenience, I bolded all the areas that pertain to my site specifically; these'll be the things you'll change to your directory/site name.

In LocalSettings.php

$wgSitename        = "WikiFic";

$wgScriptPath      = "/wikific"; $wgScript          = "$wgScriptPath/index.php"; $wgArticlePath     = "$wgScriptPath/$1";
 * 1) If using PHP as a CGI module, use the ugly URLs

$wgRedirectScript  = "$wgScriptPath/redirect.php";

$wgStylePath       = "{$wgScriptPath}/skins"; $wgStyleDirectory  = "$IP/skins"; $wgLogo            = "$wgStylePath/common/images/wikific_logo.png";

$wgUploadPath      = "$wgScriptPath/images"; $wgUploadDirectory = "$IP/images";

It's important not to have any paths defined BEFORE the path itself. That is, you shouldn't see $wgScriptPath as a value (after the = sign) BEFORE you see $wgScriptPath = (when it's defined for the first time).

.htaccess:

RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^wikific/(.+)$ /wikific/index.php?title=$1 [L,QSA]

I hope this helps some people that were in the same fix as me! I went through several 404s, 500 Server Errors, CSS being mangled... but the above settings fixed everything! --Azurite 06:57, 3 September 2007 (UTC)

All-in-one Search request, Login/logout, trailing slash fix:
Toying around with Rewrite rules, I had various problems that I couldn't seem to resolve all simultaneously:
 * Search requests wouldn't get processed correctly
 * Returning to a page after Login/Logout failed to load the skin
 * Trailing slash

Finally, I was able to get everything to function. I've found this to work with free Ionic ISAPI Rewrite Filter for IIS5.1/6.0; I assume it would work for Apache mod_rewrite as well, as the syntax is the same (if anybody has the same problems, that is)

IsapiRewrite4.ini or .htaccess: RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^/wiki/.*[?](.*)$ /wiki/index.php?$1 [I,L]
 * 1) Checks for local file existance so that .css, .js and other MediaWiki files aren't processed
 * 2) Replace any non-file, non-directory request before a '?' w/ "index.php"
 * 3) (This is to make the Special:Search?search=... requests work)

RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^/wiki/([^/]*)\/?$ /wiki/index.php?title=$1 [I,L] The first set of RewriteConds & RewriteRule corrects the somewhat odd syntax for Search request URLs. That final line will kill your trailing slash, should the article request be made with one.
 * 1) Everything else (articles) should fall back to this

And of course LocalSettings.php must still use: $wgScriptPath      = "/wiki"; $wgArticlePath     = "$wgScriptPath/$1";

Problem with http://www.mediawiki.org/wiki/Manual:Short_URL#Rewrite
I tried this, because if I try the "alias"-Type it won't load up the skins. But if I use the Rewrite everything seems to work, BUT if I want to edit, I always get to edit "index.php". Please help

If you find yourself editing a page called "Index.php", try adding this to LocalSettings.php:

$wgUsePathInfo = false;

This behavior seems to be a new feature with v1.11.0

See for more: diff -uN mediawiki-1.10.2/includes/WebRequest.php mediawiki-1.11.0/includes/WebRequest.php

- Trevor Wennblom 02:18, 21 September 2007 (UTC)

Moved from main page
I moved the following from the main page because it appears like this method does not work. (See Note below) If a method is an obvious dud, we should start removing those duds.

{|border=1

Alias
You can set an alias in .htaccess</tt>, so that the server will invisibly replace "wiki" with "w/index.php". This may not work for some server configurations. If you get a "500 error", it probably means alias is not allowed for you.

Note:Alias</tt> is not allowed in .htaccess</tt> files, at least on Apache 2.0. See the Alias Directive documentation.


 * }

This method has alot of information which seems to be irrelevant, and the code is radically different from all of the other methods. If it is an okay method, please create a new page and add this method here: Manual:Short_URL_overview

{|border=1

Alternate Rewrite Solution
This solution was used for (http://www.eroswiki.com) is in ~/eroswiki/wiki. Which is hosted with 1 & 1. This rewrite rule is placed in the .htaccess file in the ~/eroswiki directory, which achieved the short URLs and the redirection I wanted.

In ~/web_root/.htaccess</tt> RewriteEngine On RewriteCond %{HTTP_HOST} ^domain.com RewriteRule ^(.*)$ http://www.domain.com/$1 [r=301,L] RedirectMatch ^/$ http://www.domain.com/wiki RewriteCond %{REQUEST_URI} ^/wiki$ RewriteRule ^(.*)$ /wiki/index.php?title=Main_Page [L]
 * 1) Redirect http://domain.com to http://www.domain.com

RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^wiki/(.*)$ wiki/index.php?title=$1 [PT,L,QSA]

In ~/web_root/wiki/LocalSettings.php</tt>


 * }

Because of the problem in the first sentence, I removed this to the talk page.

{|border=1

Two Subdomains with no Subdirectory in Article URL
''Although a neat looking solution, this didn't work for Martin Cleaver using 1.10 - the urls generated failed to save pages.

This approach to shortening article URLs uses two subdomains: one for short article URLs, the other for all other files and "permanent" article URLs. For example, http://wiki.example.com/Article_Title is the url for an article, and http://static.wiki.example.com/wiki/index.php is where the index file is actually located. The trick to doing this is to use directory rewriting, and the 'wgArticlePath' and 'wgScriptPath' variables.


 * 1) Set up your subdomains pointing to two directories such as /var/www/wiki</tt> and /var/www/wikistatic</tt> for http://wiki.example.com/ and http://static.wiki.example.com respectively.
 * 2) Install the wiki files in the /var/www/wikistatic/wiki</tt> directory. (Standard short URL techniques can be used in that directory as well, if required. You could also not use the "wiki" directory, and put the files directly in the subdomain's root directory, removing the "/wiki" and "wiki/" from the <tt>LocalSettings.php</tt> and <tt>index.php</tt> files below.)
 * 3) In the <tt>LocalSettings.php</tt> file, make the changes shown below.
 * 4) In the <tt>/var/www/wiki</tt> directory, place two files, "index.php" and ".htaccess", as shown below.
 * }

Odessaukrain 10:29, 6 October 2007 (UTC)

Successful installation
After attempting for over two years to do make a short URL, and voicing my concern that these instructions are impossible to understand, I finally found instructions that I could understand: Manual:Short_URL/wiki/Page_title_--_PHP_as_a_CGI_module%2C_no_root_access

For those of you having problems, these instructions may help. Odessaukrain 10:32, 6 October 2007 (UTC)