CMS Made Simple Forums
https://forum.cmsmadesimple.org/

Redirect script beïnvloed admin
https://forum.cmsmadesimple.org/viewtopic.php?f=13&t=80055
Page 2 of 2

Author:  arnoud [ Fri Feb 08, 2019 7:38 pm ]
Post subject:  Re: Redirect script beïnvloed admin

Rolf wrote:
Waar ik met het script wel tegen aanloop is bijzondere tekens in de URLs. Dat gaat niet altijd goed...


Wat bedoel je met bijzondere tekens? Unicodes zoals die in verschillende vreemde talen kunnen voorkomen, zoals accenten: "Lörick" ?

Of URL-encodes strings [urlencode()] ?

Rolf wrote:
Toevallig heb ik net in de mail een soortgelijk script gekregen van een andere CMSMS gebruiker. Dit weekend ook eens testen!


Succes met testen, houd je apache access logs maar open als je de [preview]-tab bekijkt.

Author:  Rolf [ Sat Feb 09, 2019 11:08 am ]
Post subject:  Re: Redirect script beïnvloed admin

Dit werkt voor mij op https://pneumatic.tube, zowel in de frontend als de backend!
Code:
$canonical_url = isset($params['canonical_url']) ? $params['canonical_url'] : '';

if ( $canonical_url != '' )
{
  if ( strpos( $_SERVER['REQUEST_URI'], '_preview_' ) !== false ) return;

  $browser_url = htmlspecialchars ( ( isset($_SERVER['HTTPS']) ? 'https' : 'http' ) . '://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'] );
  $canonical_url = str_replace(' ', '%20', $canonical_url);

  if ( $browser_url != $canonical_url )
  {
    header('Location: ' . $canonical_url , true, 301);
    exit;
  }
}

Getest met o.a.:
https://pneumatic.tube/index.php
https://pneumatic.tube/&tag=berlin
https://pneumatic.tube/&tag=german%20language
https://pneumatic.tube/foo/bar/suppliers

Author:  arnoud [ Sat Feb 09, 2019 2:28 pm ]
Post subject:  Re: Redirect script beïnvloed admin

Je hebt nog een probleem met letters die buiten de tekenreeks [a-z], zoals de duitse S, vallen:
Code:
https://pneumatic.tube/&tag=großrohrpost


In sommige gevallen kan een dergelijk teken, bijvoorbeeld "ö" uitmonden in een "infinite" redirect:
Code:
https://pneumatic.tube/calendar/the-mix-genest-company-was-founded-by-the-businessman-wilhelm-mix-and-the-engineer-werner-genest-in-berlin-genest-in-berlin-schöneberg


Buiten "spaties (%20)", zou je ook andere tekens kunnen vervangen. [& (%26), ^ (%5E), # (%23), $ (%24), % (%25) en vele andere....]

urlencode/urldecode ipv:
Code:
$canonical_url = str_replace(' ', '%20', $canonical_url);

Author:  Rolf [ Sun Feb 10, 2019 1:24 pm ]
Post subject:  Re: Redirect script beïnvloed admin

Ja, ik weet het!
Uiteindelijk bleek het probleem in mijn tags methode te zitten...
Heb de UDT nog wat aangepast en alles werkt nu!
Zal er een blogje van maken.

Author:  Rolf [ Sun Feb 10, 2019 3:01 pm ]
Post subject:  Re: Redirect script beïnvloed admin

https://cmscanbesimple.org/blog/redirec ... onical-url

Author:  arnoud [ Sun Feb 10, 2019 5:07 pm ]
Post subject:  Re: Redirect script beïnvloed admin

Goede blog Rolf mooie aanvulling op je verhaal over het zetten van canonical url's en redirects via .htaccess.

Ik heb nog een variant bedacht als je te maken hebt met pure content pagina's zonder modules als News/CGBlog/Calendar oid.


Deze werkt op basis van de page_alias en cmsms_selflink ook toe te passen in een UDT:

Code:
$tmpl = '{$page_alias}';
$page_alias = $smarty->fetch('string:'.$tmpl);

$tmpl = '{cms_selflink page="'. $page_alias. '" urlonly="1"}';
$selflink = $smarty->fetch('string:'.$tmpl);

$browser_url =  urldecode ( ( isset($_SERVER['HTTPS']) ? 'https' : 'http' ) . '://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'] );

print "<pre>\n";
print "browser_url:$browser_url \n";
print "selflink:$selflink \n";
print "</pre>\n";

Page 2 of 2 All times are UTC
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/