I am taking over an old website, that had dynamic redirects by routing through a .aspx file, like so:
/t/link.aspx?e=2&u=0&url=http://twitter.com/example
I would simply like to redirect this to:
https://twitter.com/example
Here's what I've tried so far, but the problem is, I get a Forbidden error.
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
# These are Wordpress rules.
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
# This is the part I'm trying out.
RewriteRule ^link.aspx$ https://twitter.com/example [R=301,L]
</IfModule>
However, all I get is the following error:
Forbidden server. Apache Server at example.com Port 443 You don't have permission to access /link.aspx on this
link.aspx doesn't actually exist and my server doesn't run ASP or .NET but I was hoping this wouldn't matter since .htaccess is at the server level.
I have also tried a more exact rule, but still get the same issue:
Redirect 301 /t/link.aspx?e=2&u=0&url=http://twitter.com/example https://twitter.com/example
Any ideas? Many thanks :)
I realised after much Google(ing) that for URLs with query string parameters, I needed to use a special rewrite condition %{QUERY_STRING}
, like so:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{QUERY_STRING} ^e=2&u=0&url=http://twitter.com/example $
RewriteRule ^t/link\.aspx?$ https://twitter.com/example? [R=301,L]
</IfModule>
I also append to the URL that I'm redirecting to, a question mark ?
. This removes / prevents the query string from being passed along.
Hope this helps someone else out.
Collected from the Internet
Please contact [email protected] to delete if infringement.
Comments