it-swarm.com.de

Wie ändere ich / Benutzer zu einer benutzerdefinierten URL?

Ich habe einige kleine Drupal 7 Websites, auf denen ich mich nicht ständig anmelden muss, und es gibt keine Benutzer. Ich möchte den Benutzeranmeldepfad in etwas anderes ändern, um Bots abzuschrecken Targeting Drupal Installationen im Pfad/user.
Wie kann ich das erreichen?

Ich kann ein CAPTCHA hinzufügen, aber ich möchte auch den Pfad ändern.

5

Siehe Modul "Admin-Pfade umbenennen" . Der Zweck dieses Moduls ist das Sichern von drupal Backend durch Überschreiben des Administrationspfads. Sie können Benutzer/Login in etwas wie Mitglied/Login ändern. Ich würde auch vorschlagen, eine Weiterleitung in Ihrem htaccess zum Standard hinzuzufügen Benutzer/Login Benutzer/Register. Auf diese Weise Drupal muss nicht auch den 404 bereitstellen, wenn ein Bot versucht, auf diese Seiten zuzugreifen. Riesige Leistungseinsparungen.

EDIT: Wenn Sie weiter darüber nachdenken, brauchen Sie überhaupt kein zusätzliches Modul. Fügen Sie einfach einen Alias ​​bei /admin/config/search/path/add für Benutzer/Login, Benutzer/Register usw., fügen Sie dann einfach Weiterleitungen in Ihrem htaccess für die alten Aliase hinzu.

4
Nigel Waters

1. Sie können das Anmeldeformular auf jeder Site oder in jedem Block wie diesem rendern:

$form = drupal_get_form("user_login"); 
$form = drupal_render($elements);
print $form;

Sie müssen dann nur noch den richtigen Alias ​​für diese Seite festlegen.

2 .hook_preprocess_page(&$variables).

$current_path = current_path();
 $current_alias = drupal_get_path_alias($current_path);
 if($current_alias == 'user'){
   drupal_goto('my-url');
 }
2
Paul Bönisch

Ich habe eine schnelle und einfache Lösung, die ich für dieses Szenario verwende, ohne dass Module erforderlich sind. Verwenden Sie htaccess, um Besucher zu Benutzer oder Benutzer/Login zu einem 404 umzuleiten (oder ich leite sie zu einer versteckten Seite um, die ihre IP-Adresse protokolliert, damit ich verfolgen kann, wie oft sie besuchen). Wenn Sie sich dann anmelden möchten, geben Sie einfach einen falschen Parameter in der URL wie/user/login/12345 ein. Dadurch werden 99% dieser Spam-Bots in den Weltraum gesendet :)

1
Haz

Sie haben einige Möglichkeiten, um den "Benutzer" -Pfad zu ändern Drupal Pfad zu "Meine-URL":

Zunächst ahmen Sie die Art und Weise nach, wie Drupal definiert den "Benutzer" -Pfad auf dem Benutzerkernmodul. Auf diese Weise hat Ihre "Meine-URL" -Seite dasselbe Verhalten wie die Original.

Um die Arbeit abzuschließen, müssen Sie alle "Benutzer" -Anfragen an Ihren "Meine-URL" -Pfad umleiten. Dazu können Sie benutzerdefinierten Code verwenden, indem Sie den Hook hook_menu_site_status_alter () verwenden, oder Sie können das Redirect-Modul verwenden.

Hier ist eine schnelle Implementierung mit benutzerdefiniertem Code:

/**
 * Implements hook_menu().
 */
function yourmodule_menu() {

  // Registration and login pages.
  $items['my-url'] = array(
    'title' => 'User account',
    'title callback' => 'user_menu_title',
    'page callback' => 'user_page',
    'access callback' => TRUE,
    'file' => 'user.pages.inc',
    'weight' => -10,
    'menu_name' => 'user-menu',
    'file path' => drupal_get_path('module', 'user'),
  );

  return $items;
}

/**
 * Implements hook_menu_site_status_alter().
 */
function yourmodule_menu_site_status_alter(&$menu_site_status, $path) {
  if ($path == 'user') {
    drupal_goto('my-url');
  }
}

Hinweis: Das Umleitungsmodul ist nicht in das Funktionsmodul integriert. Wenn Sie diese Änderung automatisch auf alle Ihre Umgebungen übertragen möchten, empfehlen wir Ihnen, benutzerdefinierten Code zu verwenden.

1
gerzenstl

Beispiel:

/**
 * Implements hook_url_outbound_alter().
 */
function custom_module_url_outbound_alter(&$path, &$options, $original_path) {
  // Alter paths for login and sign-up pages.
  if ($path === 'user/login' || $path === 'user/sign-up') {
    $path = 'omfg';
  }
}
0
klidifia