Seiten nur über URL-Aliase zu erreichen
Eingetragen von dimi_mhm (217)
am 22.08.2014 - 00:36 Uhr in
am 22.08.2014 - 00:36 Uhr in
Hi @ all
ich habe folgendes Problem
ich möchte gerne aus Diskretionsgründen dass Seiten von meiner Webseite NUR über URL Aliase aufgerufen werden können
und nicht über node/"zahl"
ist das möglich wenn ja wie?
oder kann ich der node eine eigene Zahl vergeben? damit wäre mir auch geholfen
die Seiten können nicht über das login / Roles abgesichet werden
danke und Gruß aus Mannheim
Mike
- Anmelden oder Registrieren um Kommentare zu schreiben
Sieh Dir dazu mal dieses
am 22.08.2014 - 08:27 Uhr
Sieh Dir dazu mal dieses Modul an [do:rabbit_hole].
.
Werner
drupal-training.de
Moderator und Drupal Trainer
* - - - - - - - - - - - - - - - - - - - - - - - - - - - *
Mein Tipp ist Global Redirect
am 22.08.2014 - 08:55 Uhr
Mein Tipp ist Global Redirect https://www.drupal.org/project/globalredirect - verstehe zwar nicht, wo da ein Gewinn an Diskretion ist, aber Global Redirect verhindert, dass Nodes mit Alias über den Drupal-Pfad "node/XYZ" erreichbar sind, weil die User dann immer auf den Alias weitergeleitet werden
Das ist cool
am 22.08.2014 - 09:50 Uhr
Vielen Dank genauso wollte ich das.
Du fragtes nach dem Sinn
Ich vergebe einen QR Barcode die eine spezielle Seite auf meiner Webseite aufruft,
z.B die Url hompepage.de/x3d423gf ist die Alias sowie die ..../?p=node/10
wenn ich jetzt noch eine Seite erstellen mit einer anderen Buchstaben-Zahl-Kombi
bringt man das "personalisiern" nix wenn ich die Seite dann mit ...../?p=node/11 aufrufen kann
ich möchte nicht das ein andere User über die Nodezahl sich durch die Seiten hangeln kann
Nochmal vielen Dank
Das kannst Du aber nicht
am 22.08.2014 - 10:10 Uhr
Das kannst Du aber nicht verhindern - wer sich durchhangeln möchte auf diese Art und Weise, kann das immer tun. Global Redirect leitet halt weiter auf den Alias. Wer also "/q=node/234" eingibt und dann "/q=node/235" wird immer zum jeweiligen Alias weitergeleitet. Um das zu verhindern, müsstest Du ja das Kernsystem von drupal aushebeln...
Naja, zumindest wird das dem gemeinen User nicht ersichtlich - ich weiß ja nicht, wie hoch Deine Ansprüche da sind. Der gemeine User wird mit dem Alias nicht unbedingt erkennen, dass dahinter eine durchzählbare Node-Id steckt, aber technisch kannst Du schlichtweg nicht verhindern, dass jeder Node grundsätzlich über "/q=node/234" abrufbar ist.
Auch wenn globalredirect
am 22.08.2014 - 10:25 Uhr
Auch wenn globalredirect immer auf den Alias umleitet, kann die Seite immer noch über die Node-ID aufgerufen werden, wenn auch SEO unschädlich. Also ist ein Durchhangeln immer noch möglich, nur umständlicher, da er die Node-ID nicht direjt sehen kann (außer in der Quelle).
.
Werner
drupal-training.de
Moderator und Drupal Trainer
* - - - - - - - - - - - - - - - - - - - - - - - - - - - *
Der Zugriff via 'node/123' lässt sich komplett unterbinden
am 27.08.2014 - 10:50 Uhr
Hallöchen,
die Frage ist zwar schon als gelöst markiert, da mich das Thema interessierte, ich die vorgeschlagenen Lösungen aber nicht wirklich befriedigend finde habe ich mal noch etwas ausprobiert.
Fazit: Wenn man an den Anfang der 'html.tpl.php' eine kurze Überprüfung einbaut kann man den Zugriff über '/node/123' für alle Seiten, für die ein Alias definiert ist komplett unterbinden. Eine derartige Überprüfung ersetzt also auch 'Global Redirect', schließt aber den zusätzlichen Einsatz von 'Rabid Hole' nicht aus.
Mit dem folgen Snippet habe ich das gerade getestet.
(Das Snippet verwendet zwar eigene Klassen, sollte aber mit den Kommentaren dennoch verständlich sein, ansonsten bitte PM).
<?php
if (!$is_front && (($myNodeID = wreb::getCurrentPageNID()) != null)) {
// Aufdroeseln der URL (inkl. der Parameter)
$myURL = new wrebURL();
// Abholen des Pfades (ohne Server und ohne Parameter)
$myBasePath = $myURL->getBaseUrl();
// Nachsehen ob ein Alias definiert ist fuer den Node
// (/node/123 -> /dies_ist_der_alias)
$myClearPath = wreb::getNodePath( $myNodeID );
// Beide Pfade miteinander vergleichen und ggf. umleiten
if ($myBasePath != $myClearPath) {
// Ersetzt den '/node/...' gegen den Alias '/direkt_alias'
$myURL->setBaseUrl( $myClearPath );
// Setzt alles wieder zusammen (inkl. Parameter) und
// leitet auf den Alias um.
header( "location: ".$myURL->getUrl() );
exit;
}
}
?>
Grüße
Peter
Der Zugriff via Node/123 unterbinden
am 17.09.2014 - 10:56 Uhr
Hi Peter,
das ist ja cool muss ich ausprobieren, weil es eh nicht gekappt hat weder mit Global oder Rabid
vllt. wollen andere Drupaler daran beteiligen an diesem Beitrag, desswegen jabe ich ihn wieder geöffnet.
oder es schreibt eine(r) ein Modul. ich bin mir fast sicher das mein Problem nicht einmalig ist
Gruß Mike