Download: Redirection
Other: | SVN
Support: Forum

Redirection is a WordPress plugin to manage 301 redirections, keep track of 404 errors, and generally tidy up any loose ends your site may have. This is particularly useful if you are migrating pages from an old website, or are changing the directory of your WordPress installation.

Features include:

  • Supports both WordPress-based and Apache-based redirections
  • 404 error monitoring – captures a log of 404 errors and allows you to easily map these to 301 redirects
  • RSS feed for 404 errors
  • Custom ‘pass-through’ redirections allowing you to pass a URL through to another page, file, or website.
  • Full logs for all redirected URLs
  • Create redirections based upon a URL, browser, referring site, or login status
  • Automatically add a 301 redirection when a post’s URL changes
  • Full regular expression support
  • Fully localized
  • Export all redirections to CSV, XML, or Apache .htaccess files
  • Import Apache .htacces files

Redirection is available in the following languages:

If you can provide a language translation then please get in touch. A PO file is provided with the plugin to be used in translating with poEdit.


Installation is just like any WordPress plugin:

  • Download
  • Unzip
  • Upload to redirection directory to /wp-content/plugins on your server
  • Activate the plugin
  • Configure options from Manage – Redirection

Note that you must have a permalinks structure setup through WordPress.

You can find full details of installing a plugin on the plugin installation page.

Core Concepts

Redirection uses three core concepts:

  • Modules
  • Groups
  • Redirects

A module consists of many groups, and each group consists of many redirections. A module determines how the redirections will be used, and a group allows you to separate redirections into logical units. A redirection represents an action performed when a particular URL is accessed.

Don’t worry, there’s more to come!


At the most basic level, a module determines how redirections are implemented. There are three types of module:

  • WordPress
  • Apache
  • 404 errors

The WordPress module uses WordPress to implement redirections. This means it works for all permalink-enabled sites and so has the greatest compatibility.

The Apache module, as you would expect, uses Apache to implement redirections. This means that each redirection is written to an Apache .htaccess file, giving you better performance than the WordPress module, at the cost of less compatibility and less flexibility (some features, such as redirection statistics, are only available from the WordPress module).

Separate from these is the 404 error module. This uses Redirection to keep track of 404 errors.


Each module can be exported to CSV, XML, or an Apache .htaccess file. You can also view logs for each module via an RSS feed

WordPress Module

The WordPress module is the default module and provides the most features. The main disadvantage of this module is that each time a URL is redirected it requires WordPress to be loaded (contrast this to the Apache module where a redirection occurs before WordPress loads).

This module is configured as follows:

Wordpress Module

These options are detailed below:

  • Canonical – determine whether the www should be removed or added to your site URL.
  • Strip index – if enabled then any attempt to access a index.php, index.html, or index.asp file will cause an automatic redirection to the same URL, minus the index file.
  • Time Limit – sets a site-wide PHP timeout limit. Useful if something is timing out.
  • Error level – sets the PHP error reporting level. Useful for removing unwanted warnings, or for viewing hidden ones

Apache Module

Rather than using WordPress to provide redirections the Apache module writes data to an Apache .htaccess file. If you site supports these then this will give you the greatest performance, at the cost of losing a few items of functionality. For example, the Apache module provides no statistical information so it is not possible for the Redirection plugin to keep track of how many times a particular redirection has been used.

The module is configured as follows:

Apache Module

The options that differ from the WordPress module are:

  • Location – the location of the .htaccess file. The default will be your site directory
  • Ban IPs – prevents certain IPs from accessing your site
  • Allow IPs – allow certain IPs to access your site
  • Raw .htaccess – add custom rules
  • Site URL – an advanced option which allows you to set the site base URL

Note that when writing to a .htaccess file the Apache module will retain any existing non-WordPress data, so you can still add custom rules.

404 Module

This module is a little different to the others in that it is designed to record 404 errors. Rather than make this a general function, as in previous versions, the power of this module comes from the fact that redirections created inside it will be ignored from the 404 log. In other words, the module records all 404 errors except the specified URLs. Combined with the RSS feed this gives you a lot of options to keep track of errors on your site.

404 Errors

If you do want to ignore a 404 error (for example, you site may not have a favicon.ico and you don’t want this recorded) then you should create redirections as normal, but set the action to ‘Do nothing’. As for other modules you can create redirections based upon any action or rule, or matching a particular regular expression.


A group is a logical collection of redirected URLs. You can create as many groups as you wish, and groups can be re-ordered. URLs are matched based not only on the order in which they occur within a group, but the order in which groups occur within a module.

Group Edit

As well as allowing you to collect redirections together, you can also specify whether the redirections within a group are logged.

As an additional configuration option you can select which group an automatically generated URL is put in when a post/page or category is changed.

Using Redirection

The main idea behind Redirection is that you create several URLs that you want to redirect. These URLs are placed within a group, which in turn is placed within a module. The module determines how the URLs are redirected, and the group allows you to logically organise the URLs.

Each URL (or redirection) can be configured to behave in different ways. When creating a redirection there are several pieces of information you must provide:

  • Source URL – This is the original URL that you want to redirect somewhere else
  • Match – This tells the plugin how you want to match the source URL
  • Action – Determines what happens if the URL is matched
  • Regular expression – Tells the plugin that the source URL is a regular expression (i.e. a pattern that may match many URLs)
  • Target URL – most actions have a target URL. This is typically the URL that the user will be redirected to should the pattern match


Note that items can be re-ordered and this may influence which redirection takes effect.

Matching URLs

Matching a URL is a key part of Redirection and consists of a source URL. This URL must exactly match a URL that you want to redirect. For example, your site has the page:

The source URL for this is: /oldpage/that/needs/redirecting/. The source does not require your website address, and it is only possible to redirect a URL that exists on your website (you cannot redirect an external website, for example).

Advanced users can make use of regular expressions to reduce the number of redirections they need to create. A regular expression is basically a pattern that tells the plugin how to match. For example:


This pattern tells the plugin that you want to match a URL that looks like:


That is, the (d*) indicates a number, and the (.*) a sequence of characters. Regular expressions are a complicated subject and this page will not attempt to give more than a passing overview of using them. If you do need more help then you should take a look at a regular expression website.

Remember that if the source URL is a regular expression then you must enable the regular expression option, otherwise Redirection will just treat you source URL as plain text.

In addition to the source URL you can also specify a match condition:

  • URL only – Only matches the URL (the majority of your redirections will use this)
  • URL and referrer – Matches a URL when the source and referring site matches (i.e. match the URL only when the user came from a certain website)
  • URL and login status – Matches a URL when the source and user’s login status matches (i.e. match the URL only when the user is logged in)
  • URL and user agent – Matches a URL when the source and user’s browser matches (i.e. when the user is using a particular type of web browser)

These special rules can be both positive and negative. For example, you can match a URL when the user is logged in (and be redirect to one URL), or when the user is not logged in (and be redirected to another URL). This makes it very easy to create custom rules where users are redirected if they are using a particular browser, or if they came from a particular website.


An action tells Redirection what to do when a source URL is matched:

  • Redirect to URL – The default case and the majority of your redirections will use this
  • Redirect to random post – An esoteric action that may be useful to some people
  • Pass through – An advanced option that allows you to masquerade one URL as another (i.e. when the source URL is accessed it actually displays the contents of another URL without the user being aware)
  • Error (404) – Causes a 404 error to be returned
  • Do nothing – A dummy option that can be used if you just want to track accesses to a URL

Configuration of rules and actions

Depending on the particular combination of action and match rule you may be required to provide further details for a redirection.

Basic URL redirection

You can specify which HTTP code is used to redirect a URL (301, 302, or 307):

Redirect Url

A couple of examples:

/blog/(.*) => /$1

This will match any URL that starts with /blog/, and will redirect it to the same URL but without /blog/. For example, /blog/2006/10/01/mypost will be redirected to /2006/10/01/mypost.

/2006/month_(\d+)/(.*) => /2006/$1/$2

This will match any URL that starts /2006/month_, and is then followed by a number. This will be redirected to the same URL, but without month_. For example, /2006/month_1/something will be redirected to /2006/1/something.

To replace a single dash in a URL with a space:

/tags/(.*?)-(.*?) => /tags/$1%20$2

Redirect to URL by matching user agent

This allows you to configure a redirection to occur when a specific browser (the user agent) is used:

Redirect User Agent

A set of pre-defined user agents is available from the drop-down menu or you can specify your own. The user agent match is always performed using a regular expression.

Two target URLs can be specified, one for if the user agent does match, and one for if it doesn’t match.

Redirect to URL by matching referrer

Similar to the user agent rule but this one looks at the referrer. That is, if a user follows a link from another site to yours, the original site is passed along by the browser (unless disabled) to your site so that you know where the user came from. Using this rule you can base your redirections upon this original site.

Redirect to URL by login status

This rule allows you to match a URL based upon the user’s WordPress login status. That is, if they are logged into your site.

Support & Bugs

Support and feature requests should be made through the Redirection support forum. You can contact me directly but I spend a very limited amount of time on direct support and you stand a better chance of being answered through the forum.

If you find the plugin useful then please do consider making a donation – it is appreciated and helps towards the maintenance of the plugin.


1,340 Responses to Redirection

  1. Hey John, great plugin.

    I’m using this to redirect some affiliate links and it works great. My only problem is that when I look at the stats I get a lot of listings from the same IP addresses.

    IP address xxxx will show as having clicked the link 12 times

    the next day a different IP Address shows as having clicked the link 22 times.

    Is this a bug anyone else has come across?

    Thanks John,

  2. Hi John,

    looks like in 2.0.4 the redirection of changed post-urls doesn’t work anymore. They don’t get created in all tested blogs (5). There’s no error or something. Any idea?


  3. David, I don’t know why you get a 500 error.

    Catsandbeer, the 404 log is one extra click away. Alternatively use the RSS feed

    Ana, if your 200 URLs follow some patterns then you should try and create some regular expressions. This will greatly reduce the number of manual redirections.

    Moles, it is possible that the same IP address follows a URL more than once.

  4. Thanks! I had been searching this for age. This is definitely one of the best wordpress plugin that helped me to manage my blog with ease.

  5. John — got a hard one for you

    I changed my permalinks recently and used your plugin for 301’s — works great

    Now, what I want to do is move another blog into that blog using 301 redirects to bring the old links and searches to the new blog. The problem is the old blog has an entirely different permalink structure than either the old or new structure of the main blog.

    How can I bring the old blog over to the new blog?

  6. Thanks for the great plugin. I recently changed my domain name, and I am in the process of moving my website and blog to the new domain. Your plugin will come very handy for me.

  7. Hey how would you write the redirect for this example using regular expression?



  8. John, problem added to the bug tracker.

    The other John: if your URLs have a consistent naming structure then you should be able to create a regular expression that will redirection everything from your old structure into the new one.

    Web dude, something like /videos/\?(.*) => videos.php?$1

  9. Hey,

    Thanks for the great plugin, however, after upgrading to the latest version now when I publish a new post on my blog all links to the homepage get redirected to the posts page. So going to would send you straight to the latest post, rather than showing the homepage. At this time the plugin has been de-aticvated. Any ideas? I’m using WordPress 2.6 and Mimbo Pro theme.

    Thanks in advance!

  10. Problem ‘fixed’. When I published the new post it created a “Modified Post” redirect from / to the latest post url… I deleted this redirect.

  11. Is there anyway to use wordpress tags? Such as %post_id% and what not. I can’t seem to get it working. This would really help. Thanks!

    God bless!

  12. Now that I think about this, I guess it wouldn’t be possible since it’s going to a 401, if would have no information on the post. Hmmm.

    God bless,

  13. Hello,
    What id I change manually change the permalink structure in WordPress?
    How can I autometically permanently (301) redirect the old post URLs to the new?

  14. I sell text link ads on my page, if I use “Redirection” is the page still get the pagerank?? its important because it affected my earning.



  15. 1. I changed all of my posts to pages. So now I am having an indexing problem with Google, as they are counting the previous posts as duplicate content even though the posts don’t exist anymore.

    2. Because my site accepts both www and non-www for my URL, I’ve been told that that too is causing an indexing problem as it constitutes canonicalization. I was told that I need to choose which one I want and do a 301.

    Does this plugin take care of this? If so, can you tell me how to fix this?


  16. You can get redirection to redirect the URLs for your old posts to the new pages. Likewise you can force the site to have www or not have www

  17. Hi,
    I’ve been meaning to ask this for quite sometime now.

    First of, your plugin is a godsend! It becomes one of my primary reasons of using wordpress when creating sites – because of your plugin. lol

    But i have a question. I noticed that some of links are being “clicked” by crawlers or bots and it gets registered as a “hit”.

    Is this normal?

    For example , I checked the log and a hit came from googlebot.

    Does this happen naturally? Or am I missing something?


  18. I love this plugin but need to ask a question. Currently the admin is the only person that can access the admin section. I would like to allow editors to do so. Is there something in the code I can quickly modify, or is there a capability I can add to Role Manager to allow this? (Capabilities, at least creating them, is totally new to me and outside what I currently understand.)

    Thanks for any help.

  19. John, yes, any request to a URL will register a hit and this includes bots that are scanning your site. Good bots, like Google, should pay attention to any redirection you put in place and will eventually update so they then request the new URL rather than the old one (this presumes that there are no links pointing to the old address)

    Ed, currently only an administrator is allowed to edit redirections.

  20. Hi John,

    Thanks. I see it now.

    But would there be an option in future perhaps to add something “don’t register bot hits”?

    Cause one time I was like “Wow I got so many hits!”
    …then I noticed that they were just


  21. It wouldn’t be a useful option and would lead to a substantial performance hit. It shouldn’t matter where a hit to an old URL is coming from – as long as it’s being hit then you want it to be redirected until whoever is hitting it realises the change and updates their index.

  22. Is there an IIS solution for Clean Urls in WordPress? I’ve searched for a long time but it seems that even the Mod-Rewrite plugin for IIS won’t fix the issues. Help! Thanks!

  23. Colby, you need to edit the WordPress or Apache module – both have this option.

    Kurt, I’m not sure what the problem is you are referring to.

  24. John,

    Thanks for the awesomeness that is redirection! Care to comment on the ideal file permissions for .htacess. I had it at 644 but this was not writable so now I’m at 666 …. is this ideal for accesibility / writing / security?

    Also noticed that if I go to logs or seaerchthere are none, but if I go to modules I see hits under the 404 group listing… if I click on the number of hits it then shows me the 404 logs… just a heads up.

  25. If you want Redirection to save to the .htaccess file then you need whatever permissions are necessary for the web server to do that. Typically this will be write permissions for the group/other, but it depends how your server is configured.

    Yes, logs and 404 logs are seperate things. If you are using the Apache module then Redirection cannot keep any logs, but it will still record 404 errors.

  26. John,

    Have you considered adding an “Uninstall Redirection” function to the plugin?

    I’ve had Redirection on my site for quite some time now, but it stopped working quite a while ago. It,

    1) erased all the entries I had
    2) will not allow me to add NEW redirections

    But I’ve tried clearing it out myself and reinstalling, but still haven’t got it to work. And I have no idea what’s wrong.

    Any suggestions?

  27. Okay well want more, why did I deactivate this plugin and then had major htaccess file issues that wouldn’t let my WordPress install connect to the database and the only way I could fix it was by deleting the plugin from the plug in directory? Also I looked in the options page and there was nothing clearly stated about changing that. Why would you make that a default option? That seems to me like something that would be better served if someone could turn it on and not do it when the first install the plugin.

  28. Erik, see the options page ‘URL monitoring’ for the ability to configure URL monitoring. This is enabled by default as it is generally beneficial to everyone. It does not automatically redirect to the latest post but auto-adds a redirection when a post URL changes.

    The plugin will make no modifications to your .htaccess file unless you configure it to do so by adding an Apache module. Modifications to your .htaccess will not cause your database to become unavailable.

  29. John, when you’ve created a redirection you can edit it and configure it further (including redirection type)

  30. With the new 2.0.8 update, I can no longer create redirects. I have not changed anything, and 2.0.7 was working fine.

  31. The 2.0.8 update just included a minor fix when deleting logs – there is nothing that should have affected how anything else works.

  32. Hi John, I’m not doubting you, but I reinstalled 2.0.7 and it works just fine. So if it’s not the 2.0.8 release, I don’t know what it is!

  33. I’m not doubting the problem! From experience I find that if I wait a short period then most people report that the problem disappeared. Right now no one else has reported any similar issues so I would make sure that the plugin was correctly updated and also check that you’ve cleared your browser cache – it’s possible that something like this may be interfering. Also, if you are using Google Gears to speed up your site then disable that.

  34. I found the setting that you were talking about. I don’t know why you have this on by default, we are using WordPress in an CMS style app, and don’t want any redirected to the latest post but have them stay on the static page it’s set to. And this was a hard setting to find and change and wasn’t were you said it would be.

    When we moved to WordPress from our old site there was a number of links that needed to get moved and this is a nice plug into handle that. But I think you may want to rethink some of the default settings.

  35. Erik, as I said before, the setting does not redirect to the latest post. It redirects the old URL of a post to a new URL, if that post’s URL changes. Doing this is very important. The setting is on the Redirection options page.

  36. John i recently downloaded your awesom developed plugin and activated it.

    I am using wordpress 2.3.3 and IE 7

    But it is not letting me to add any redirections. No matter i add any url it just showing me “You have no redirections.”

    I am trying as :

    Source URL: /eyewear-blog/ray-ban-sunglasses-declared-retro-comeback-of-the-summer/
    Target URL: /eyewear-blog/ray-ban-sunglasses-retro-comeback
    Match : URL only
    Action : Redirect to URL

    Is there any specifix way to add redirections. Plz help me in figure out.

    Thanks in Advance.

  37. Hi,

    I recently had to deactivate your plugin as it was causing a redirection loop in a post where I had added a new category to (which changed the permalink) – I decided that I didn’t want that category, so I unchecked it.

    Well, after that when I tried to pull up the post, it just looped infinitely through both permalinks.

    After I deactivated your plugin it returned to normal.

    Any thoughts?


  38. I understand what you are saying it doing. But I’m saying that when someone is using WordPress as a CMS system they wouldn’t want that option by default. Thus I’m saying that should be something that someone can decide to turn on, because I can see it’s usefulness. Since there is no clear way to disable that it would make people turn away when it starts to cause problems with there CMS site. We use our WordPress as a CMS, as I said in other post, and we use the blog posting system for press releases. So why would we want all incoming traffic redirection to the latest press release?

  39. Erik, you haven’t read my comment properly. The option does not redirect to the latest post. That would indeed be a useless feature an no one would want that whether using WordPress as a blog or a CMS. The function redirects an old URL to a new URL when a URL is changed. That is a very important feature and one that WordPress itself does. The option to do this is clearly labelled in the interface and can be easily disabled.

    Jeferson, if you can match a pattern then you can remove part of a URL. For example, /tag/(.*) => /$1 would remove the ‘tag’ from all URLs.

    SDK, you’ll need to delete the redirection from the interface

  40. Thanks for the quick reply, John. So, if I delete the plugin and then upload again it should work? Just want to make sure…

  41. Hi, i recently activated 2.0.8, and it is not letting me add any rediretions.

    Any thoughts.

  42. Dave, delete the plugin directory.

    SDK, you don’t need to delete the plugin just the redirection that is causing the loop (i.e. find the URL that is looping in the Redirection interface and delete it)

    Sameer & Kavin, you’ll need to provide some more details about your setup as I cannot recreate any problem adding redirections.

  43. Thanks for developing a wonderful plugin. I used many plugins offered in the wordpress directory. I was so confused and none of them worked well for me. This plugin has more features than compared to the other plugins.
    Great work!

  44. Hi John,

    I’m having the same problem as Kavin. Former version of Redirect was working fine. I was very happy with it. Since I upgraded to the new version I keep adding redirects but they don’t get saved. Please advise.


  45. I am able to redirect the old domain homepage to the new domain, but how do I redirect specific posts and pages from the old domain to the new one?

  46. To all the people reporting problems with adding redirections, please please can you provide more details? It’s not particularly useful to read the same problem reported five times, especially when I’ve repeatedly stated I cannot reproduce it. The fastest way for me to locate an issue is to have all the information to hand – server environment, web browser, wordpress version etc. If you can provide a login to a site exhibiting the problem with the details of the steps to reproduce it then it will really save me a lot of time.

  47. hi,

    i miss the option “Globally redirect unknown 404 errors” in the new version of the redirection plugin

    is there a way to config this in the version 2.0.9



  48. Hi John,

    I’m having the redirection creation issue. what happens is rather than adding the re-direct it loads the index within the plugin control panel.

    If you’d like access to my blog I can sort that for you.


  49. Matt, interesting, I thought I’d prevented things like that happening but it seems there’s a few more variations I can stop!

    Thomas, yes you can add a redirection to the 404 error module so that it captures everything you want to redirect.

  50. Hello. I was wondering…

    If I change my domain from to, how can I use Redirection so that:

    will be forwarded to


    I will probably be changing domains soon, and I need to know if this plugin can successfully forward it to new domain for all posts.

  51. Oh yeah, and this is meant to be for people who have linked to my old domain, but I don’t want to lose their link.

    Whenever someone clicks on the link on their site to go to mine, it will still show the same post but with the new domain.

    Does that make sense? Thanks.

  52. Firstly, Thanks for a fantastic plugin!

    Several questions that I didn’t seem to get answers from your site:

    1. If httpd.conf already has directives in the VirtualHost, e.g.

    RewriteEngine On
    RewriteCond %{HTTP_HOST} !^www\.whatsthebigidea\.com
    RewriteRule ^/(.*)$1 [R=301,L]
    RewriteLog “/var/log/rewrite_log”
    RewriteLogLevel 5

    by writing it again in the .htaccess does it seem redudant?

    2. Is there a choice to use either the WordPress modules OR the Apache module, or both?


  53. Another question from the phantom icon:

    Why does Redirection want to overwrite my well-configured .httaccess removing any directives that exist?

    Can I prevent it from doing so?

  54. Tony, thanks – added into the bug tracker

    David, Redirection only writes to a .htaccess file if you configure it to do so (via an Apache module). If you have configured it to do so and it is removing existing details then this is a bug and if you can provide some details I will investigate further. The Apache and WordPress can be used together provided the URLs don’t overlap.

    Mauricio, you could install Redirection on your old domain and create a redirection to the new one. However, it is important you still have control over your old domain – if you don’t then there is nothing you can do (with Redirection or via any other method)

  55. Hi,

    I found your plugin as I was searching for a clean way of returning 410 Gone status messages for deleted posts and pages. I would have thought this should be the default behaviour in WordPress, but it seems to insist on treating deleted posts as 404 errors.

    The documentation above is a little dense – could you give a quick answer on whether it is possible to use this plugin to automatically track deleted pages in this way. It would not make sense to set up hand coded responses for each deleted page or post, so an automatic solution is clearly the way to go.


  56. I’ve transferred my wordpress blog to my own domain. This too was recommended as a way to redirect the URLs. I’ve uploaded it as a plug-in to my new blog on my new domain and put in a redirection. It’s not working…it seems that I would need to load this plugin into my wordpress-hosted site for the redirects to work, which isn’t possible. Is that correct?

  57. Richard, no, the plugin will not automatically track deleted posts. However this would be a good feature and I’ve added it into my feature tracker for the next version.

    Laura, you can only redirect from a domain running Redirection. I don’t think it will be possible to redirect your site from to your new domain, using Redirection or any other method.

  58. I just downloaded the new update and tested it in WordPress 2.7 on FireFox and IE. When activated and I click to you Redirection – the WordPress flyout menus stay out covering information.

    Now the key to this error – is when the wordpress menu is minimized. It might be on WP’s end because when the menu is minimized the flyouts go under the content. I don’t know much ajax, so I thought I’d tell you so you know.

  59. Its dropping a javascript error too.

    Exception… “Component returned failure code: ….

  60. The WordPress menu – minimize it so its just the icons. When you mouseover the icon, the menu items appear to the right of the icon – instead of expanding down.

    Ok – i just tried it again. When you click on Redirection, if using the minimized menu, it automatically goes to the full menu. And you can’t expand menu items or switch the minimized menu either.

  61. Hello,

    I tried using this plugin to strip index.php from my post URLs. Seemed to work at first because the URL changed from to (with the double backslash like that). However, it redirected to the homepage of the blog instead of the individual post, even though the URL showed an individual post.

    I was using the WordPress module, since I don’t have an apache server with .htaccess capabilities.

    Thanks in advance for your reply, I really appreciate it!

  62. Tony, there’s little I can do about that at the moment without making some fundamental changes to the plugin.

    Diana, if you used the ‘strip index’ feature in the WordPress module then this is only designed to remove ‘index.php’ from the end of a URL, not the middle. If you do want to remove it from the middle then you’ll need to setup a regular expression based redirection. Something like:

    /index\.php/(.*) => /$1

  63. John, I’ve been running into this problem for quite, a, long, time, now. (I say that only because I think it’s been happening for over a year.

    I created a short screencast to explain the problem of the disappearing redirects and modules page problems.

    Anything you can suggest to help me fix this? It’s been happening for a very long time.

    If you can, please also email me when you think you have a solution (since you don’t have a “subscribe to comments” option here)

  64. Hi John,

    There must be a simple (or one-line) option to redirect requests for file names with an .html extension to extensionless file names. For example, to redirect from to

    In other words, the domain name and all file names are the same, just without the trailing “.html”.

    I searched Google and your comments section for a solution, to no avail.

    Also, when you show to enter an arrow =>, am I supposed to enter the entire string (including the arrow) into the Source URL field while leaving the Target URL field blank, or am I supposed to not enter the arrow anywhere but enter what comes before the arrow under Source URL and all that comes after the arrow into the Target URL field?

    Thank you very much in advance for your help.


  65. Marcus, you can create a regular expression rule that does something like:

    (.*)\.html => $1

    You enter the first part (up to, but not including the =>) in the source URL and the second part (after the =>) in the target

    Jonathan, thanks for the video. That actually looks like expected behaviour. Unless you enter something in the source URL then redirection just throws it away. I guess it should display some error message, but a simple ‘fix’ is to include a source URL.

  66. Thank you very much, John. That does exactly what I need.

    There are just a few issues (or one), which I’ve submitted through your bug issue tracker (after figuring out how and where… pun intended ;-).

    Take care!

  67. I would just like to say thank you so much for this plugin, I have not been so happy with a plugin within minutes of using it in a long time. It is doing exactly what I want. PERFECT


  68. In WordPress 2.7 – when I click on Modules, then click on hits. Normally it shows me the hits so i can add more redirections if needed. In 2.7 when I click on it, it goes back to the main redirection page.

  69. Hi there,
    It gives me following error when I browse Categories Page ( in WP-Admin DashBoard

    Warning: parse_url() expects parameter 1 to be string, object given in /home/yokodu/public_html/wp-content/plugins/redirection/models/monitor.php on line 30

    Can you please fix this up?

  70. Great plugin, just what I need, almost, and took me about 5 minutes to find, install, and configure.

    However I do have one feature request and I don’t have a login to the feature request page listed at the bottom. I would really like a name or short description for the redirects. I am using Redirection to redirect numbered urls (eq http://site/url/1000->Somewhere) and keeping track of all the redirects can be a bit of a problem.

    If I have a title or short description I could quickly find Somewhere in the list, rather than wading through tons of numbered redirects.


  71. I have the same problem with the above comment. I’m using wordpress 2.7 now, when I clicked on error hits (module), it will redirect to main page of redirect. Please, my blogs terribly need the plugin. I can’t see my 404 errors.

  72. Awesome plugin!!!
    …but it makes a huge log file, and I cannot delete it but using phpMyAdmin.
    (maybe it’s only my fault, but maybe you should consider to check this feature)

  73. I was forced to move to because my blog was getting hacked on Bluehost.

    This plugin is fantastic.

    For individual pages it was simple. For example,

    /blog/2008/12/01/trek-to-mt-tronador-argentina/ …. redirect to

    But I’ve tried over and over again to use a regular expression to redirect ALL the old posts. No luck.

    This for example, did not work:

    /blog/(\d*)/(\d*)/(\d*)/(.*)/ … redirect to\d*)/(\d*)/(\d*)/(.*)

    I tried many variations.

    Is my error obvious to you?

    I’d really appreciate the correct regular expression. Otherwise I would need to do thousands of pages one-by-one.

  74. Does Redirection work with WordPress 2.7?
    I have used the plugin on many sites with no problems in the past, but can’t get it to work on any new sites running WP 2.7.

  75. Gazoooo was the sound it made… It went over my head!!
    I can read and see this is smart… But way over what I imagine I wanted to configure…

    My question is simple… I can see I need this… and it’s helpful… But I don’t understand all the techni stuff of URL’s and redirections… SO: Will this DO something if I just installe it with default settings…
    Or DO I have to enter some basic stuff???

  76. i’ve been looking for days to find a solution for redirecting my wordpress page to an external html page. i installed your plugin, created the redirect and bam! there it was.

    awesome plugin, excellent work and HIGHLY recommended solution!!


  77. Peter, no it won’t do anything unless you configure it to do so.

    Hobbsy, yes it does work, but there are some interface issues that may prevent the management of existing redirections. The plugin is next on my list of things to do so expect an update very soon.

  78. Yes, this seems to work fine with 2.7. I had it installed before upgrading to 2.7 and after upgrade to 2.7 everything still seems fine. There’s one new bug that’s annoying. I used to click on Modules, Hits, and then the number of hits to see the relevant piece of the log, but now that takes me back to the plugin’s Redirects page. John – maybe you could look into this.

    Otherwise, this is one of the most useful plugins out there, especially for people moving from blogger or rearranging a lot of posts.

  79. WP-Admin/Categories

    Warning: parse_url() expects parameter 1 to be string, object given in ….wp-content/plugins/redirection/models/monitor.php on line 30

  80. I have same Problem with 2.7


    Warning: parse_url() expects parameter 1 to be string, object given in ….wp-content/plugins/redirection/models/monitor.php on line 30

  81. error in categories :

    Warning: parse_url() expects parameter 1 to be string, object given in /public_html/wp-content/plugins/redirection/models/monitor.php on line 30

Pings | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |