Support » Fixing WordPress » Permalinks not working

Viewing 15 replies - 1 through 15 (of 22 total)
  • Unless you are on a Win server or a server without mod_rewrite – you don’t really need the index.php in the permalink structure. That’s the first step to figure out.

    If you have mod_rewrite then while updating your permalinks structure in the admin panel (Options > Permalinks) WP will tell you whether it was able to write the .htaccess file or you have to do it manually.
    Just make an empty file and upload it to the root and make it writable (chmod 666).

    I’m on a Linux server. I have .htaccess files in both public_html of the main site, and the directory for the subdomain, /spartacus. Neither of them change when I change the permalink structure, but /index.php/… works and /… doesn’t. Both files are mode 666. WP simply says “permalinks updated succesfully.”

    Just to test (and BTW, WP will write only the one in its directory!) – make the WP’s .htaccess file totally un-writable and update the permalink options in the admin. WP should show you the code; copy and paste it manually into the .htaccess file, upload it and see if it works.

    Sorry to pile on here but I’m having the identical problem. I’ve tried all the steps and have no permalinks. Well, I have permalinks but they only link to the most recent blog post on the blog. Also, when I click on an Archive month, it takes me to that same top-of-blog post.

    Moderator James Huff


    Volunteer Moderator 🚀

    First, make sure that your .htaccess file’s permissions are set to 666 (CHMOD 666), then try this permalink structure:


    If that doesn’t work, try this:


    Hi, some of my permalinks suddenly stopped to work.
    I tried this structure:
    (without last slash) and that helped.
    But i have still problems with calendar because /%year%/%monthnum%/%day%/ doesn’t work while /%year%/%monthnum%/%day% works… so you have to remove the last slash every time using the calendar.

    The .htaccess file will not change to 444 but only 644. Even at that, the file is never modified or written to when I change the permalink structure.

    Unless I am mistaken, a new problem has arisen. When I change the structure to /… nothing works, when it’s index.php/… everything just goes back to the main page.

    666 not 444.


    I’m fairly certain most people are NOT having permission problems. I am suffering with the same problem. You can see the problem in action at

    Permalinks of this form work:


    Permalinks of this form DON’T work:


    My .htaccess file looks like this:

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

    My mod_rewrite logs are as follows:

    <IP removed> – – [29/Dec/2005:21:13:26 –0600] [][rid#82842d0/initial] (2) [per-dir /var/kunden/webs/jeff/] rewrite 2005/12/29/irc-im-speak/ -> /index.php
    <IP removed> – – [29/Dec/2005:21:13:26 –0600] [][rid#82842d0/initial] (2) [per-dir /var/kunden/webs/jeff/] trying to replace prefix /var/kunden/webs/jeff/ with /
    <IP removed> – – [29/Dec/2005:21:13:26 –0600] [][rid#82842d0/initial] (1) [per-dir /var/kunden/webs/jeff/] internal redirect with /index.php [INTERNAL REDIRECT]
    <IP removed> – – [29/Dec/2005:21:13:26 –0600] [][rid#8283b60/initial/redir#1] (1) [per-dir /var/kunden/webs/jeff/] pass through /var/kunden/webs/jeff/
    <IP removed> – – [29/Dec/2005:21:13:26 –0600] [][rid#827c2b8/initial] (1) [per-dir /var/kunden/webs/jeff/] pass through /var/kunden/webs/jeff/

    For all those with the same problem I’ve described above, the following is a workaround. It sucks, because it does an external redirect and I’m not sure how that affects search engines, etc. But for those of us who’ve moved to WordPress 2.0 only to find permalinks broken, here’s a temporary solution:

    Change your .htaccess file to look like this:

    # BEGIN WordPress
    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ /index.php/$1 [R,L]
    # END WordPress

    Thanks binfeed that redirect works great. The only problem now is that all the links redirect to the main page. Whether it’s %postname%/ or %postname%.html everything goes to the main page.

    For all those who are interested, the bug I was seeing above had *nothing* to do with WordPress. It was actually a PHP bug. Changing “display_startup_errors” to “On” in php.ini allowed me to see that require_once() was not working properly under PHP 4.4.1. I then found this bug:

    I downgraded to PHP 4.3.10 and all is well.


    I had the same problem with permalinks and the calendar and found following solution:
    open the template-functions-links.php file in wp-includes directory, and change line 172 from
    return apply_filters(‘day_link’, get_settings(‘home’) . trailingslashit($daylink), $year, $month, $day);
    return substr(apply_filters(‘day_link’, get_settings(‘home’) . trailingslashit($daylink), $year, $month, $day),0,-1);

    I also had to add “Options +SymLinksIfOwnerMatch” to the top of my .htacces file

    My workaround:
    Change line 864 in /wp-includes/classes.php from:

    var $use_verbose_rules = false;


    var $use_verbose_rules = true;

    if you change this all extra rewrite rules are added to your .htaccess.

    use_verbose_rules is used in the function mod_rewrite_rules() (starts at line 1334). it´s not set anywhere else. there is no mapping in the options database table. seems to be not finished yet…

    hope this helps.

    Yes, I’m having the same problem but neither of the above workarounds worked for me, also I’m not able to downgrade my PHP version. It only happens on one permalink (ironically the one about upgrading to WP 2.0.

    The broken permalink is:

    The numerical page number (which works) is

Viewing 15 replies - 1 through 15 (of 22 total)
  • The topic ‘Permalinks not working’ is closed to new replies.