I’m having trouble with redirecting urls using the .htaccess file. This is what my .htaccess file looks like:
Redirect 301 /file-name/example.php http://www.mysite.com/file-name/example-001.php Redirect 301 /section-name/example.php http://www.my-site.com/section-name/example-002.php RewriteEngine on RewriteCond %{HTTP_HOST} !^www.mysite.com$ [NC] RewriteRule ^(.*)$ http://www.mysite.com/$1 [L,R=301] RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.+)/(.*)$ hqtemplates/articles.php?file_name=$2 [L] php_value session.use_only_cookies 1 php_value session.use_trans_sid 0
Now the problem is that when I go to page: www.my-site.com/file-name/example.php, instead of redirecting me to www.my-site.com/file-name/example-001.php it redirects me to www.my-site.com/file-name/example.php?file_name=example-001.php.
For some reason it adds ‘?file_name=example-001.php’ to the url. Does anyone know why this is happening and how to fix it?
the problem is mixing
mod_aliasredirect rules withmod_rewrite. the solution is to stick to one. this is a solution for a pure mod_rewrite only approach (i have included only relevant portions to the issue):as to what’s happening in your .htaccess, here’s the rewrite log:
which suggests:
mod_rewrite‘RewriteRule ^(.+)/(.*)$ hqtemplates…’file-name/example.phpis now equivalent tohqtemplates/articles.php?file_name=example.phpmod_alias‘Redirect 301…’file-name/example-001.php?file_name=example.php