Hobbes
Hobbes

Reputation: 415

htaccess redirect in joomla WITHOUT landing on index.php

I've added an redirect from an old domain to my new domain in the .htaccess file of my Joomla 3.x site, running on Apache.

This is the code I'm trying to get working;

RewriteCond %{HTTP_HOST} !newdomain\.co\.uk$ [NC]
RewriteRule ^(.*)$ http\:\/\/www\.newdomain\.co\.uk/$1 [R=301,L]

This succeeds in redirecting any incorrect domain to my new domain, but does NOT put me on the corresponding sub-page.

So, for example, I type in the following address ..;

http:\\old.com\calendar

... and I WANT to end up at;

http:\\newdomain.co.uk\calendar

But instead, I get directed to;

http:\\newdomain.co.uk\index.php

Can anyone help me get the redirect working to land me on the corresponding sub-page?

For the record, the Joomla site's SEO settings are as follows (and work as you would expect - site pages do not generally include index.php in the URL and correspond to the menu item alias);

Search Engine Friendly URLs - YES
Use URL rewriting           - YES
Adds Suffix to URL          - NO
Unicode Aliases             - NO

The COMPLETE .htaccess file looks like this - I don't know if Joomla's .htaccess definitions are affecting the redirect that I've put in place;

Options +FollowSymLinks
RewriteEngine On

RewriteCond %{QUERY_STRING} base64_encode[^(]*\([^)]*\) [OR]
RewriteCond %{QUERY_STRING} (<|%3C)([^s]*s)+cript.*(>|%3E) [NC,OR]
RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR]
RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2})
RewriteRule .* index.php [F]

RewriteBase /
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

RewriteCond %{REQUEST_URI} !^/index\.php
RewriteCond %{REQUEST_URI} /component/|(/[^.]*|\.(php|html?|feed|pdf|vcf|raw))$ [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* index.php [L]

suPHP_ConfigPath /whatever/php.ini

RewriteCond %{HTTP_HOST} !newdomain\.co\.uk$ [NC]
RewriteRule ^(.*)$ http\:\/\/www\.newdomain\.co\.uk/$1 [R=301,L]

Header set X-UA-Compatible "IE=10"

Thanks in advance to anyone who can provide some insight!

Upvotes: 0

Views: 1867

Answers (1)

C3roe
C3roe

Reputation: 96151

You are rewriting a lot of stuff to index.php before already – so when your new Rules you added below that are evaluated, the (internal) request URI most likely is index.php already.

So move those new rules further up.

Upvotes: 2

Related Questions