2

First of all, this is my directory structure

/localhost/p/
  .htaccess
/localhost/p/inc/
  style.css

I have this snippet on /localhost/p/.htaccess

Options -MultiViews +FollowSymLinks 
RewriteEngine On
RewriteBase /p/

RewriteCond %{REQUEST_FILENAME} ^(.+)/([^/]+)$
RewriteCond %1/inc/%2 -f
RewriteRule ([^/]+)$ inc/$1 [L]

RewriteRule ^(.+)$ index.php [QSA,L]

It won't allow me to access a file at localhost/p/style.css but it will let me access index.php

here is the log

[perdir D:/p/] strip per-dir prefix: D:/p/style.css -> style.css
[perdir D:/p/] applying pattern '([^/]+)$' to uri 'style.css'
[perdir D:/p/] RewriteCond: input='D:/p/style.css' pattern='^(.+)/([^/]+)$' => matched
[perdir D:/p/] RewriteCond: input='D:/p/inc/style.css' pattern='-f' => matched
[perdir D:/p/] rewrite 'style.css' -> 'inc/style.css'
[perdir D:/p/] add per-dir prefix: inc/style.css -> D:/p/inc/style.css

// I don't know how to stop the .htaccess here, and just get the file
// instead go with [INTERNAL REDIRECT]

[perdir D:/p/] trying to replace prefix D:/p/ with /p/
strip matching prefix: D:/p/inc/style.css -> inc/style.css
add subst prefix: inc/style.css -> /p/inc/style.css
[perdir D:/p/] internal redirect with /p/inc/style.css [INTERNAL REDIRECT]
[perdir D:/p/] strip per-dir prefix: D:/p/inc/style.css -> inc/style.css
[perdir D:/p/] applying pattern '([^/]+)$' to uri 'inc/style.css'
[perdir D:/p/] RewriteCond: input='D:/p/inc/style.css' pattern='^(.+)/([^/]+)$' => matched
[perdir D:/p/] RewriteCond: input='D:/p/inc/inc/style.css' pattern='-f' => not-matched

// Of course it will never match, it should be D:/p/inc/style.css

...
...
...

Thanks,

Afrig Aminuddin
  • 772
  • 1
  • 9
  • 22
  • You cannot stop it -- that's just how it works (in loops) -- read this http://stackoverflow.com/questions/6797998/rewriterule-last-l-flag-not-working – LazyOne May 30 '12 at 10:19

1 Answers1

5

Use this RewriteCond to allow no more than 1 internal redirection:

## prevent looping from internal redirects
RewriteCond %{ENV:REDIRECT_STATUS} !200
anubhava
  • 761,203
  • 64
  • 569
  • 643