Solved

apache mod rewrite to do 301 redirects with .htaccess

Posted on 2008-10-05
3
797 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

Business Impact of IT Communications

What are the business impacts of how well businesses communicate during an IT incident? Targeting, speed, and transparency all matter. Find out more in this infographic.

Question has a verified solution.

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

If you are a web developer, you would be aware of the <iframe> tag in HTML. The <iframe> stands for inline frame and is used to embed another document within the current HTML document. The embedded document could be even another website.
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…
I've attached the XLSM Excel spreadsheet I used in the video and also text files containing the macros used below. https://filedb.experts-exchange.com/incoming/2017/03_w12/1151775/Permutations.txt https://filedb.experts-exchange.com/incoming/201…
Exchange organizations may use the Journaling Agent of the Transport Service to archive messages going through Exchange. However, if the Transport Service is integrated with some email content management application (such as an antispam), the admini…

751 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