Log In · Register

 

Help Topic Rules and Requirements

For a list of all requirements and guidelines pertaining to posting a new Help topic, please click here.

This Month's Contests | Staff Member of the Month | Hosts Looking for Hostees | Hostees looking for Hosts | BigBookofResources

Submission Guidelines

Help with .htaccess file
mipadi
post May 17 2010, 05:07 PM
Post #1


Senior Member
******

Group: Administrator
Posts: 2,648
Joined: Apr 2008
Member No: 639,265



I have a website at www.monkey-robot.com/. It's a blog. All my blog files are stored in a /blog subdirectory. Internally, I rewrite the root URL to /blog, which means that when you go to www.monkey-robot.com/ you get the contents of /blog, but through the magic of Apache you don't see the URL change.

That works. What's annoying is that www.monkey-robot.com/blog also shows the front page of the blog, which means the front page exists at 2 different URLs. This is bad. So I want to redirect www.monkey-robot.com/blog to the root URL.

This is my current .htaccess file for doing so:

CODE
ErrorDocument 403 /404.html
ErrorDocument 404 /404.html

Options -Indexes

#### Rewrite Rules ####

RewriteEngine On

# Rewrite monkey-robot.com to www.monkey-robot.com
RewriteCond %{HTTP_HOST} ^monkey-robot\.com$
RewriteRule ^(.*)$ http://www.monkey-robot.com/$1 [R=301,L]

RewriteRule ^$             /blog/               [L]
RewriteRule ^feeds/blog/?$ /feeds/blog/atom.xml [L]


Right after the RewriteRule ^$ /blog/ [L], I tried adding this:

CODE
RewriteRule ^blog/?$ / [R,L]


But that gave me an error with "infinite redirects", probably because of the line before it (even though I thought it shouldn't). So I did this instead:

CODE
RewriteRule ^blog/?$ http://www.monkey-robot.com/ [R,L]


But then I got the following Apache error: Invalid command '[R,L]', perhaps misspelled or defined by a module not included in the server configuration But I'm pretty sure the syntax is correct.

Any ideas?
 
 
Start new topic
Replies
fixtatik
post May 17 2010, 09:15 PM
Post #2


Senior Member
******

Group: Member
Posts: 1,237
Joined: May 2008
Member No: 648,123



Apache always gives me a headache. I'd always thought when rewriting a URL, it was based on the user-inputted URL, but I guess it's the current URL being read.

So (going out on a limb), when someone's at /, Apache's reading /blog/, but you have a rule to redirect /blog/ to /. Back and forth.

I'd probably just end up doing a redirect in a server-side language with the same regex. If you're determined to keep it in .htaccess, try http://forum.modrewrite.com. There's not much the guy who runs that doesn't know about Apache.
 

Posts in this topic


Reply to this topicStart new topic
1 User(s) are reading this topic (1 Guests and 0 Anonymous Users)
0 Members: