Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 3485344
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 18, 20262026-05-18T10:53:47+00:00 2026-05-18T10:53:47+00:00

I have a rather old website that I’ve fed up refactoring so I’m rebuilding.

  • 0

I have a rather old website that I’ve fed up refactoring so I’m rebuilding.

The old URLs don’t have any naming consistency for me to create some sort of rule so, is it possible to have some sort of router/controller that forwards ($this->_forward()) the old URLs to their new location?

For instance when I’m calling http://www.example.com/this-is-a-url-with-a-random-name.php it will forward to http://www.example.com/url/random-name …

Maybe this match could exist in an array so the key would be the old URL and the value would be the new location?

Or am I just trying to re-invent the wheel and I should just stick with the good ol’ .htaccess rules with 301 redirects?

(I hope all this makes sense?)

Cheers,
Angel

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-18T10:53:48+00:00Added an answer on May 18, 2026 at 10:53 am

    I’ll start off by recommending using your apache config to place the rewrites if possible. It’s much faster than both using .htaccess and your Zend Framework application.

    I’ll also say that you do want to use 301 redirects as they are the best for search engines when your content has been moved permanently.

    If you want to use your Zend Framework application to do this and if you have a bunch of URLs that may have different structures, the best place is in the default error controller as a ‘last ditch effort’. The reason for this is that if you have an url /myoldurl that doesn’t exist now (but is on your redirect list) and you implement it in the future as it’s own controller/module – your controller will automatically take over.

    Inside errorAction() there is a switch that decides if your error is a 404 or a 500.

    Inside the 404 block you can add code to do a redirect. This is not complete code, look it over and insert missing pieces of data as needed.

    // [code omitted]
            switch ($errors->type) {
                case Zend_Controller_Plugin_ErrorHandler::EXCEPTION_NO_ROUTE:
                case Zend_Controller_Plugin_ErrorHandler::EXCEPTION_NO_CONTROLLER:
                case Zend_Controller_Plugin_ErrorHandler::EXCEPTION_NO_ACTION:
                    // this is the original request string ie: /myoldurl
                    $pathinfo =  $this->_request->getPathInfo();
    
                    // decide if pathinfo is in your redirect list
                    if ($pathinfo is in some list of old urls) {
                        // and get $newurl from your list
                        $newurl =  something from a list of new urls;
    
                        // set redirect code to 301 instead of default 302
                        $this->_helper->redirector->setCode(301);
                        $this->_redirect($newurl);
                    }
                    // 404 error -- controller or action not found
                    $this->getResponse()->setHttpResponseCode(404);
                    $this->view->message = 'Page not found';
                    break;
    //[...]
    
    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

We have an issue related to a Java application running under a (rather old)
I have rather large input XML files that must be converted to a given
I have a rather weak understanding of any of oracle's more advanced functionality but
I have a rather big number of source files that I need parse and
I have a rather large (many gigabytes) table of data in SQL Server that
I have an old Debian box that I used heavily over a long period
I have 2 databases, one is MS Access DB from an old website, and
I have just been altered to the fact that a user of my website
I have a rather large file (150 million lines of 10 chars). I need
We have a rather simple site (minimal JS) with plain html and CSS. It

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.