Sandeep Sasikumar
Sandeep Sasikumar

Reputation: 451

Magento htaccess redirection issue

I was trying to redirect a particular URL and all its child URL's to a particular URL. Using 301 redirection this is working fine but the browser URL is showing the test contents also. Please see below for more details

Example: https://www.mywebsite.com/customer/account/login/referer/* needs to be redirected towards https://www.mywebsite.com/customer/account/login/register

What I tried is:

Options +FollowSymLinks
RewriteEngine on
Redirect 301 /customer/account/login/referer  https://mywebsite.com/customer/account/login/register

The htaccess rule is working fine for just this URL. If I type

https://mywebsite.com/customer/account/login/referer/testing 

This will be redirected towards https://mywebsite.com/customer/account/login/register/test

Please let me know how I will be able to trim the other part (URL part after register/*)from the redirected URL. What I am trying to achieve is

https://mywebsite.com/customer/account/login/referer/* [ANY URL's AFTER referer/ (Including /referer) needs to be redirected to https://mywebsite.com/customer/account/login/register].

Upvotes: 1

Views: 121

Answers (1)

Olaf Dietsche
Olaf Dietsche

Reputation: 74098

This is expected behaviour, as stated in the documentation of Redirect

Then any request beginning with URL-Path will return a redirect request to the client at the location of the target URL. Additional path information beyond the matched URL-Path will be appended to the target URL.

To redirect all requests starting with this prefix to the given URL, you may use RedirectMatch, which uses regular expressions instead of a URL prefix

RedirectMatch ^/customer/account/login/referer https://mywebsite.com/customer/account/login/register

You don't need to use

Options +FollowSymLinks
RewriteEngine on

because this is for mod_rewrite. Redirect and RedirectMatch are provided by the mod_alias module.

Upvotes: 2

Related Questions