So I'm having this weird issue on the dashboard where custom permalinks only (default, day and name, month and name etc. those all work fine) doesn't save. I can choose the radio button and click "Save Changes" and the radio button will revert to one of the previous choices that works fine.

And so I found this online which suggests to add index.php preceding the link, and it works now - but I feel this fix is a "bandaid" of sorts and doesn't actually resolve the issue. Are there any repercussions of using index.php in the custom permalink structure?

Also, if it helps, the site was updated from 3.4.1 to 3.9.1, no PHP errors, all plugins are disabled, and there was an htaccess file missing, but I put one in using this. I am also seeing the htaccess actively update whenever I choose one of the options that work so it's writable.

Any idea why only the custom permalink structure is an issue and can I safely insert index.php into it as a fix?

2 Answers 2


When you include index.php/ at the start of your custom permalink structure you are telling WordPress to use PATHINFO permalinks. WordPress Codex - PATHINFO: "Almost_Pretty"

It is possible you are using an IIS (Windows) server or that mod_rewrite is not working correctly. Permalinks without mod_rewrite

The following plugin can help you determine if mod_rewrite is working correctly or if it is not available. Rewriterule Viewer Plugin

  • Turns out that the issue was the custom permalink structure was the same as month/day so it wasn't saving since it already existed as a default option. But I did learn about "almost pretty" permalinks thanks to your answer. It helped me to troubleshoot further and narrow down the issue even though it wasn't the final resolution. Thanks.
    – RachieVee
    Jul 25, 2014 at 15:32

Assuming that you are using apache. It's pretty simple, just edit these in


This is the path to apache server configuration files.

 <Directory />
    Options FollowSymLinks
    AllowOverride All

Here you need to change just AllowOverride None to AllowOverride All

 <Directory /var/www/html>
    # ... other directives...
    AllowOverride All

After doing all of these just restart the server.

sudo service httpd restart

If it doesn't works then check the conf directory may be there are some other .conf files that are interfering.

Hope it helps!

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.