Seite 1 von 1

mod_rewrite teile der index.php 301 weiterleiten

Verfasst: 16.09.2016, 21:27
von Sololand
Moin,

ich suche eine Lösung für folgendes Problem:

/index.php?do=login&email_full=******** soll auf /ordner/ weitergeleitet werden. Die index.php selbst nicht also nur URL die den Teil do=login&email_full=

Meine Lösung klappt nicht :-(

RedirectMatch 301 ^/(.*)do=login&email_full$([^0-9]*)$ /ordner/$1$2


wäre sehr dringend :-(

Danke

Verfasst:
von

Verfasst: 16.09.2016, 23:02
von [btk]tobi

Code: Alles auswählen

RewriteRule ^/index.php?do=login&email_full=(.*) /ordner/
Oder willst du die "email_full" noch verwenden?

Gruß Tobi

Verfasst: 17.09.2016, 09:43
von Sololand
Moin,

danke für die Hilfe, das klappt leider nicjt, ich denke das hat was mit den wordpress Befehlen zu tun hat, normal schneidet wordpress das index.php ganz ab

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>


die URL: index.php?do=login&email_full=mail@mail.com&pawort=xxx darf in keinem Fall mehr erreichbar sein unter der Hauptseite :-(

Verfasst: 17.09.2016, 10:29
von [btk]tobi
Wenn deine Wordpress Installation in einem Unterordner liegt kannst du die htaccess mit den Wordpress Regeln auch da rein schieben dann gelten die Regeln nur für diesen Ordner und nicht für die Hauptseite.

Was heißt index.php?do=login&email_full=mail@mail.com&pawort=xxx darf nicht erreichbar sein? Ich denke du willst es umschreiben, dazu muss die URL aber erreichbar sein.

Gruß Tobi

Verfasst: 17.09.2016, 16:18
von Melegrian
Für WordPress bietet sich doch add_rewrite_rule an.

https://www.coder-welten.com/die-wp-rewrite-api/

Verfasst: 18.09.2016, 17:41
von Sololand
Danke nochmal, die URL hat ja Email und Passwort im Titel, das muss da raus ansonsten 404 oder 301 auf eine andere Seite, den die Url gibt es nicht und verweist auf die Startseite anstatt 404 seite. Es ist umgekehrt WordPress läuft hauotordner und das andere Script läuft im unterordner

Re: mod_rewrite teile der index.php 301 weiterleiten

Verfasst: 18.09.2016, 19:02
von Melegrian
Ich verstehe nicht wie die sich jetzt aufrufen lässt, doch wenn die sich jetzt mit

Code: Alles auswählen

ordner/index.php?do=login&email_full=********
aufrufen lassen sollte, dann sollte da halt eine Rewrite in der htaccess ähnlich wie diese aussehen und die Rewrite gehört dann vor der ersten vorhandenen Rule. Die muss aber auch, wie Tobi bereits schrieb, vorhanden sein, sonst kann nichts ausgelöst werden.

Code: Alles auswählen

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /

RewriteCond %&#123;QUERY_STRING&#125; !^.*nur=einmal$
RewriteRule ^ordner/index\.php$ /ordner/sichtbare.php? &#91;L,R=301&#93;

RewriteCond %&#123;QUERY_STRING&#125; ^do=login&email_full=&#40;.+&#41;$
RewriteRule ^ordner/sichtbare\.php$ /ordner/index.php?do=login&email_full=%1&nur=einmal &#91;QSA,L&#93;

RewriteRule ^index\.php$ - &#91;L&#93;
RewriteCond %&#123;REQUEST_FILENAME&#125; !-f
RewriteCond %&#123;REQUEST_FILENAME&#125; !-d
RewriteRule . /index.php &#91;L&#93;
</IfModule>
Bin mir jetzt nicht wirklich sicher, weil ich meine etwas anders schreibe.

Wenn die sich so aber nicht aufrufen lässt, wer hat das Script in einem Ordner abgelegt? Dann lege es doch einfach außerhalb von WP ab, wenn es doch nicht über die WP-Engine laufen sollte oder binde es richtig ein, als Plugin oder im Theme unter page-templates und bleib innerhalb von WP und benutze add_rewrite_rule.

Verfasst: 19.09.2016, 10:32
von Sololand
Habs jetzt mit php und header loacation gelöst, ging besser, wordpress machte einem das leben mit mod_rewrite etwas schwer.

Lösung:


if($_REQUEST['do'] == 'login'){
header("HTTP/1.1 301 Moved Permanently");
header("Location:https://www.domain.de/");
}


Danke an alle :wave: