Solved

apache mod rewrite to do 301 redirects with .htaccess

Posted on 2008-10-05
3
804 Views
Last Modified: 2012-05-05
I rebuilt my entire site from scratch and need to redirect all the old URL's to new ones. Unfortunately they are all over the place so the solution seems to use mod_rewrite with .htaccess.  I know it can be done but I am having trouble getting the syntax to work. 500 points if you help me.

Here are some URL's I need to redirect. For each number there are usually 50 corresponding numbers.
so for the first one feedid=6 there is also a feedid=1, feedid=2, feedid=3 all the way to 50 or so.

Podcast feeds
from
http://www.domain.com/index.php?module=CTV&action=viewRss&feedid=6
to
http://www.domain.com/podcasts/rss/podcast/6

Podcast subscribe page
from
http://www.domain.com/index.php?module=CTV&action=subscribe&id=7
to
http://www.domain.com/podcasts/details/7

Channel feeds
from
http://www.domain.com/index.php?module=CTV&action=channel&cid=11
to
http://www.domain.com/channels/details/video/11

External channel feeds
from
http://www.domain.com/index.php?module=ctv&action=mediaCenter&cid=21
to
http://www.domain.com/channels/details/video/21

Specific Random URL to change
from
http://www.domain.com/index.php?module=CTV&action=mediaCenterPlayer&id=2138
to
http://www.domain.com/channels/details/video/21

Here is my existing .htaccess and it is working well.

<IfModule mod_rewrite.c>
   RewriteEngine on
   RewriteCond %{REQUEST_URI}  !(^/crossdomain.xml)
   RewriteRule    ^$ app/webroot/    [L]
   RewriteRule    (.*) app/webroot/$1 [L]
   rewritecond %{http_host} ^domain.com [nc]
   rewriterule ^(.*)$ http://www.domain.com/$1 [r=301,nc]
   AddType application/x-javascript .js
   AddType      text/css .css
</IfModule>

I am using apache 2.2.3 on Centos 5
Please be specific and you get 500 points!
0
Comment
Question by:toben88
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 2
3 Comments
 

Author Comment

by:toben88
ID: 22647207
Oops for the last one I meant
http://www.domain.com/index.php?module=ctv&action=mediaCenter&cid=21
to
http://wwwdomain.com/channels/details/video/21/mediapage
0
 
LVL 27

Accepted Solution

by:
caterham_www earned 500 total points
ID: 22647552
The last one from your 2nd post is the same original url like the 4th one. May be you ment mediaCenterPlayer? If you'd like to exclude /crossdomain.xml, you've to do that for your 2nd rule, because the 1st one will never match a request like /crossdomain.xml.
RewriteEngine on
RewriteCond %{QUERY_STRING} ^module=CTV&action=viewRss&feedid=([0-9]+) [NC]
RewriteRule ^index\.php$ /podcasts/rss/podcast/%1? [R=301,L]
RewriteCond %{QUERY_STRING} ^module=CTV&action=subscribe&id=([0-9]+) [NC]
RewriteRule ^index\.php$ /podcasts/details/%1? [R=301,L]
RewriteCond %{QUERY_STRING} ^module=CTV&action=(?:mediaCenter|channel)&cid=([0-9]+) [NC]
RewriteRule ^index\.php$ /channels/details/video/%1? [R=301,L]
RewriteCond %{QUERY_STRING} ^module=CTV&action=mediaCenterPlayer&id=([0-9]+) [NC]
RewriteRule ^index\.php$ /channels/details/video/%1/mediapage? [R=301,L]
rewritecond %{http_host} ^domain.com [nc]
rewriterule ^(.*)$ http://www.domain.com/$1 [r=301,nc]
RewriteRule    ^$ app/webroot/    [L]
RewriteCond %{REQUEST_URI}  !=/crossdomain.xml
RewriteRule    (.*) app/webroot/$1 [L]
 
AddType application/x-javascript .js
AddType      text/css .css

Open in new window

0
 

Author Comment

by:toben88
ID: 22647571
found the solution here http://www.webhostgear.com/109.html
0

Featured Post

Back Up Your Microsoft Windows Server®

Back up all your Microsoft Windows Server – on-premises, in remote locations, in private and hybrid clouds. Your entire Windows Server will be backed up in one easy step with patented, block-level disk imaging. We achieve RTOs (recovery time objectives) as low as 15 seconds.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

It is possible to boost certain documents at query time in Solr. Query time boosting can be a powerful resource for finding the most relevant and "best" content. Of course the more information you index, the more fields you will be able to use for y…
Introduction This article is intended for those who are new to PHP error handling (https://www.experts-exchange.com/articles/11769/And-by-the-way-I-am-New-to-PHP.html).  It addresses one of the most common problems that plague beginning PHP develop…
Monitoring a network: why having a policy is the best policy? Michael Kulchisky, MCSE, MCSA, MCP, VTSP, VSP, CCSP outlines the enormous benefits of having a policy-based approach when monitoring medium and large networks. Software utilized in this v…
In this video you will find out how to export Office 365 mailboxes using the built in eDiscovery tool. Bear in mind that although this method might be useful in some cases, using PST files as Office 365 backup is troublesome in a long run (more on t…

628 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question