Example URL:
example.com/user
/user is both a symlinked directory and a valid URL to content on my site. I user Horde Routes to request the content and all requests to the site go through index.php.
I currently have a .htaccess file that looks like:
Options +FollowSymlinks
RewriteEngine on
RewriteCond %{HTTP_HOST} ^example.com$ [NC]
RewriteRule ^(.*)$ http://www.example.com/$1 [R=301,L]
#allow cool urls
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*) index.php [L]
#allow to have Url without index.php
But going to /user lists the directory contents rather than the webpage. Is it possible to ignore symlinks?
Additional to that is if you request:
example.com/user/some-css-file.css
That is a valid request that should not be ignored. So is it possible to allow files via symlinks to be requested, but the base symlinks themselves to be ignored and go to index.php?
Thanks 🙂
The test for
!-dwill fail when/user/is requested since it’s actually an existing directory. You might want to use it without that condition and only allow direct access to existing files but not directories:Additionally you could replace the pattern
^(.*)with!^index\.php$so that a request for the index.php doesn’t require a filesystem lookup: