# Rewrite problem or routing issue?

**URL:** <https://www.ruby-forum.com/t/rewrite-problem-or-routing-issue/102246>\
**Category:** Rails\
**Created:** [August 13, 2006, 10:54pm UTC](https://www.ruby-forum.com/t/rewrite-problem-or-routing-issue/102246 "2006-08-13T22:54:07Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![ScuzzleButt](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/c57346/32.png) [@ScuzzleButt](https://www.ruby-forum.com/u/ScuzzleButt)\
**Post date:** [August 13, 2006, 10:54pm UTC](https://www.ruby-forum.com/t/rewrite-problem-or-routing-issue/102246/1 "2006-08-13T22:54:07Z")

</div>

I’m not able to access anything in public, everything seems to be going  
through the rails router. As a result, I can’t get to stylesheets or  
javascript.

I’m not quite clear if this is a .htaccess problem, or a router problem.  
I eliminated the “catchall” route, so the last route is

map.connect ‘:controller/:action/:id’

My .htaccess file looks like

* * *

# General Apache options

AddHandler fastcgi-script .fcgi  
#AddHandler fcgid-script .fcgi  
AddHandler cgi-script .cgi  
Options +FollowSymLinks +ExecCGI

# If you don’t want Rails to look in certain directories,

# use the following rewrite rules so that Apache won’t rewrite certain

requests

# 

# Example:

# RewriteCond %{REQUEST\_URI} ^/notrails.\*

# RewriteRule .\* - [L]

# Redirect all requests not available on the filesystem to Rails

# By default the cgi dispatcher is used which is very slow

# 

# For better performance replace the dispatcher with the fastcgi one

# 

# Example:

RewriteRule ^(.\*)$ dispatch.fcgi [QSA,L]  
RewriteEngine On

# If your Rails application is accessed via an Alias directive,

# then you MUST also set the RewriteBase in this htaccess file.

# 

# Example:

# Alias /myrailsapp /path/to/myrailsapp/public

# RewriteBase /myrailsapp

RewriteRule ^$ index.html [QSA]  
RewriteRule ^([^.]+)$ $1.html [QSA]  
RewriteCond %{REQUEST\_FILENAME} !-f  
#RewriteRule ^(.\*)$ dispatch.cgi [QSA,L]

# In case Rails experiences terminal errors

# Instead of displaying this message you can supply a file here which

will be rendered instead

# 

# Example:

# ErrorDocument 500 /500.html

ErrorDocument 500 ‘

## Application error
Rails application failed to  
start properly’
* * *

Any help is appreciated.

---

<div class="post-metadata">

**Author:** ![ScuzzleButt](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/c57346/32.png) [@ScuzzleButt](https://www.ruby-forum.com/u/ScuzzleButt)\
**Post date:** [August 14, 2006, 12:28am UTC](https://www.ruby-forum.com/t/rewrite-problem-or-routing-issue/102246/2 "2006-08-14T00:28:41Z")

</div>

ScuzzleButt wrote:

> RewriteRule ^(.\*)$ dispatch.fcgi [QSA,L]  
> RewriteEngine On
> 
> # If your Rails application is accessed via an Alias directive,
> 
> # then you MUST also set the RewriteBase in this htaccess file.
> 
> # 
> 
> # Example:
> 
> # Alias /myrailsapp /path/to/myrailsapp/public
> 
> # RewriteBase /myrailsapp
> 
> RewriteRule ^$ index.html [QSA]  
> RewriteRule ^([^.]+)$ $1.html [QSA]  
> RewriteCond %{REQUEST\_FILENAME} !-f  
> #RewriteRule ^(.\*)$ dispatch.cgi [QSA,L]

Looks to me like you’ve told Apache to send EVERYTHING to dispatch.fcgi.  
Is there a reason why you’ve made it the first rule, instead of the  
last?

–Al Evans

---

<div class="post-metadata">

**Author:** ![ScuzzleButt](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/c57346/32.png) [@ScuzzleButt](https://www.ruby-forum.com/u/ScuzzleButt)\
**Post date:** [August 14, 2006, 1:52am UTC](https://www.ruby-forum.com/t/rewrite-problem-or-routing-issue/102246/3 "2006-08-14T01:52:34Z")

</div>

No reason.

I’m assuming by uncommenting

# RewriteCond %{REQUEST\_URI} ^/notrails.\*

# RewriteRule .\* - [L]

I can somehow direct public/stylesheets and public/javascripts to be  
ignored by rails.

I’m not quite sure I understand the rules regarding this, and I haven’t  
found any sources that describe it simply.

---

<div class="post-metadata">

**Author:** ![ScuzzleButt](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/c57346/32.png) [@ScuzzleButt](https://www.ruby-forum.com/u/ScuzzleButt)\
**Post date:** [August 14, 2006, 2:12pm UTC](https://www.ruby-forum.com/t/rewrite-problem-or-routing-issue/102246/4 "2006-08-14T14:12:56Z")

</div>

ScuzzleButt wrote:

> No reason.
> 
> I’m assuming by uncommenting
> 
> # RewriteCond %{REQUEST\_URI} ^/notrails.\*
> 
> # RewriteRule .\* - [L]
> 
> I can somehow direct public/stylesheets and public/javascripts to be  
> ignored by rails.
> 
> I’m not quite sure I understand the rules regarding this, and I haven’t  
> found any sources that describe it simply.

That’s because it’s not simple:-)

See [http://httpd.apache.org/docs/1.3/mod/mod\_rewrite.html](http://httpd.apache.org/docs/1.3/mod/mod_rewrite.html)

I’m no expert, but it looks to me like your first rule:

> RewriteRule ^(.\*)$ dispatch.fcgi [QSA,L]

Tells Apache to match everything and quite evaluating rules.

–Al Evans
