19

i have a simple rewrite

RewriteRule ^.*$ addnew/$0

however i get the

Request exceeded the limit of 10 internal redirects due to probable configuration error.

I am trying to rewrite

www.mysite.com/anycharacter

into

www.mysite.com/addnew/anycharacter

fjfjwo
  • 323
  • 2
  • 3
  • 7

3 Answers3

27

Try the folllowing solution, it works for me.I hope this will work for you too.

  1. BEFORE DOING ANYTHING - BACKUP YOUR DB!

  2. Now, go into wordpress > settings > permalinks

  3. Set it to one of the pretty permalink settings like //year/month/'

  4. Open a text editor on your PC/Mac and open the .htaccess file you downloaded from your webserver

  5. Find this piece of code

    # BEGIN Wordpress
    <IfModule mod_rewrite.c>
      RewriteEngine On
      RewriteBase /
      RewriteCond %{REQUEST_FILENAME} !-f
      RewriteCond %{REQUEST_FILENAME} !-d
      RewriteRule . /index.php [L]
    </IfModule>
    # END WordPress
    
  6. Replace it with this piece of code, courtesy of Scott Yang:

    <IfModule mod_rewrite.c>
       RewriteEngine On
       RewriteBase /
       RewriteCond %{REQUEST_FILENAME} !-f
       RewriteCond %{REQUEST_FILENAME} !-d
       RewriteRule ^(.+)$ /index.php/$1 [L,QSA]
    </IfModule>
    
  7. Upload this code into the main domain root directory on your server and you're done.

Everything should work

cweiske
  • 30,033
  • 14
  • 133
  • 194
Tom
  • 279
  • 3
  • 3
  • Thanks a lot. I've just moved my WordPress installation from a subfolder to the root and this was causing me a lot of headaches. Thanks again! – Avinash Meetoo Jun 17 '15 at 16:01
  • Thanks a lot. This saved my day! For me, this particular line made it work `RewriteRule ^(.+)$ /index.php/$1 [L,QSA]` – Taher Feb 11 '16 at 10:11
14

As RC already said, .* will also match addnew/. And since the L flag causes a reinjection of the rewritten rule, you will get an infinite recursion.

So adjust the rule so it doesn’t match your addnew/:

RewriteRule !^addnew/ addnew%{REQUEST_URI}
Gumbo
  • 643,351
  • 109
  • 780
  • 844
3

.*matches addnew/. Try with:

RewriteRule ^[^/]*$ addnew/$0