I am trying to redirect /folder to / using .htaccess but all am I getting is the Apache HTTP Server Test Page. My root directory looks like this:
/
.htaccess
-/folder
-/folder2
-/folder3
My .htaccess looks like this:
RewriteEngine On
RewriteCond %{REQUEST_URI} !^/folder/
RewriteRule (.*) /folder/$1
What am I doing wrong? I checked my httpd.conf (I'm running Centos) and the mod_rewrite library is being loaded. As a side note, my server is not a www server, it's simply a virtual machine so it's hostname is centosvm.
Addition: My httpd.conf looks like so:
<VirtualHost *:80>
ServerName taa.local
DocumentRoot /var/www/html
SetEnv APPLICATION_ENV "dev"
Alias /taa /var/www/html/taa/public
<Directory /var/www/html/taa/public>
DirectoryIndex index.php
AllowOverride All
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
Make sure Mod_Rewrite is loaded. Make sure you have
AllowOverrides All
on your root directory (it's the Apache default, but most distros have a defaultnone
in the httpd.conf file).I figured out that my
<VirtualHost>
declaration was missing a<Directory>
declaration for root. By changing my<VirtualHost
to:My /.htaccess looks like:
It would be cleaner if I knew hot to say if
REQUEST_URI = /
, then redirect but I don't know how.You need to drop the initial '/' from a match with RewriteCond
See the examples in http://httpd.apache.org/docs/2.2/mod/mod_rewrite.html#rewritecond