Jump to content

Landing Page Issues


quickjeff
 Share

Recommended Posts

Hi Guys, 

I am running into a bit of an odd problem. 

I have setup a landing pages section for another site without any issues. 

Therefore instead of having a ton of landing pages they all reside under /landing-pages/  and will redirect to the short URL. 

Example:  Instead of root/landing-page/page it will be root/page.

In my first site it works perfect!

In repeating the same setup for another site I encounter the following problem:

ERR_TOO_MANY_REDIRECTS

Here is what I am doing:

Created a Landing Pages Section

Landing Pages Reside Under this Section with the landing-page template

In the home template I have turned on segments, in landing-page template I have also turned on segments.

In the top of the home template I have placed the following code:

<?php  if(strlen($input->urlSegment2)) {
  // we only accept 1 URL segment here, so 404 if there are any more
  throw new Wire404Exception();

} else if(strlen($input->urlSegment1)) {
  // render the landing page named in urlSegment1 
  $name = $sanitizer->pageName($input->urlSegment1);
  $post = $pages->get("/landing-pages/")->child("name=$name");
  
  if($post->id) echo $post->render();
    else throw new Wire404Exception();
  

} else {
 

?>

In the top of the landing-page template I have placed the following code:

<?php 
// Redirect to the fake URL if real URL is accessed
if(!$input->urlSegment1) {
	$session->redirect($page->url);
}
include("inc/head.inc");		
?>

If I go to the shorter url it works fine, if I attempt the /landing-pages/page url it wont redirect, it just causes the error. 

Now I tested replacing $session->redirect($page->url); with  throw new Wire404Exception(); and then it will work with showing the 404 therefore my conclusion is the session is not catching the short url. 

Any help? 

I have checked htaccess, index and config, all are setup right. 

Running: PW 2.7

Link to comment
Share on other sites

There are some nice modules out there to solve this in a better way. For example:
http://modules.processwire.com/modules/process-redirects/
http://modules.processwire.com/modules/process-jumplinks/
https://processwire.com/talk/topic/9436-page-path-history-manager/

 

For sure there is an endless redirect if you do

$session->redirect($page->url);

If you want to stay with your method you can do something like the following in your landing-page template

<?php 
// Redirect to the fake URL if real URL is accessed
if (strpos($page->url,'landing-pages')) $session->redirect('/'.substr($page->url,13));       
?>
  • Like 1
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...