Ich bin ziemlich neu zu Mod Rewrite und ich habe Probleme zu versuchen, die folgenden für unsere privaten Forum Benutzer zu erreichen. Das private Forum ist in einem Unterverzeichnis der community
htaccess Redirect von Subdir zu Root übergeben Referrer als Parameter
Benutzer klickt auf einem E-Mail-Link genannt Website:
https://www.example.com/community/index.php?/topic/this-is-the-topic
wenn Browser geht zum Forum und der Benutzer nicht angemeldet ist das Forum spritzt /login/
in die {QUERY_STRING}
. Obwohl es nicht in der URL angezeigt wird und sie auf die Anmeldeseite der Website geleitet werden, ist dies die einzige Möglichkeit, festzustellen, ob der Benutzer in Bezug auf die erforderliche RewriteRule angemeldet ist oder nicht.
Die URL wie folgt aussehen muss, wenn auf der Login-Seite anzukommen:
https://www.example.com/login.php?redirect_to=https://www.example.com/community/index.php?/topic/this-is-the-topic
, was ich versucht habe, ist:
RewriteCond %{QUERY_STRING} /login/(.*)$ [NC]
RewriteRule ^(.*)$ https://www.example.com/login.php?redirect_to=%{REQUEST_URI} [L,R=301]
was mich diese bekommt:
https://www.example.com/login.php?redirect_to=/community/index.php
alles andere nach dem Fragezeichen fehlt ...
Wenn ich %{QUERY_STRING}
nach den {REQUEST_URI}
in den RewriteRule hinzufügen können Sie dann sehen login
nach /community
in den {QUERY_STRING}
injiziert worden ist, und dann ein &ref=
, die von der E-Mail einer Base64 codierte Version der ursprünglichen Referrer-URL enthält.
UPDATE:
Die Gemeinde ist ein privates Forum in der Gemeinde Unterverzeichnis und es gibt 2 .htaccess-Dateien einen in der Wurzel und der andere in der Gemeinde dir seine Selbst.
Ich habe dies geerbt und mir die .htaccess-Dateien sehen ein bisschen chaotisch Wir brauchen alle HTTP-Verkehr auf https
Root-Datei .htaccess
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteCond %{HTTPS_HOST} !^tribe.mytechnologybusiness.com$ [NC]
RewriteCond %{REQUEST_URI} !^/[0-9]+\..+\.cpaneldcv$
RewriteCond %{REQUEST_URI} !^/[A-F0-9]{32}\.txt(?:\ Comodo\ DCV)?$
RewriteCond %{REQUEST_URI} !^/\.well-known/pki-validation/[A-F0-9]{32}\.txt(?:\ Comodo\ DCV)?$
RewriteRule (.*) https://tribe.mytechnologybusiness.com/$1 [L,R=301]
# End Replacement
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
# BEGIN MainWP
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase/
RewriteCond %{REQUEST_URI} !^/[0-9]+\..+\.cpaneldcv$
RewriteCond %{REQUEST_URI} !^/[A-F0-9]{32}\.txt(?:\ Comodo\ DCV)?$
RewriteCond %{REQUEST_URI} !^/\.well-known/pki-validation/[A-F0-9]{32}\.txt(?:\ Comodo\ DCV)?$
RewriteRule ^wp-content/plugins/mainwp-child/(.*)$ /wp-content/plugins/THIS_PLUGIN_DOES_NOT_EXIST [QSA,L]
</IfModule>
# END MainWP
Community .htaccess Datei
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
############################################
# WordPress to IPBoard Integration
# Start Board to Wordpress Redirect Area
############################################
RewriteEngine on
# Registration
RewriteCond %{QUERY_STRING} /register/(.*)$ [NC]
RewriteRule (.*) https://tribe.mytechnologybusiness.com/wp-login.php?action=register [L,R=301]
# Logout
RewriteCond %{QUERY_STRING} /logout/(.*)$ [NC]
RewriteRule (.*) https://tribe.mytechnologybusiness.com/wp-login.php?action=logout [L,NE,R=301]
# Login
RewriteCond %{QUERY_STRING} /login/(.*)$ [NC]
RewriteRule ^(.*)$ https://tribe.mytechnologybusiness.com/wp-login.php?redirect_to=%{REQUEST_URI} [L,R=301]
############################################
# End Board to Wordpress Redirect Area
############################################
und die url ich verwenden werde versuchen, dies zu testen, mit ist
https://tribe.mytechnologybusiness.com/community/index.php?/topic/162-sydney-tribal-meetup-thursday-14th-september-2017/
jemand mir dabei helfen?
Cheers,
Dank dafür. es hat nicht für mich funktioniert ... Ich habe andere Regeln in der Datei. einige aus WordPress und anderen, die http zu https-Weiterleitungen erzwingen sollen. Das Community-Verzeichnis hat auch eine eigene htaccess-Datei. Gibt es eine Möglichkeit, Ihnen mehr Details und Kopien der 2 Dateien zu senden? –
versucht, wie Sie vorgeschlagen, aber immer noch nicht gehen. Also habe ich die Frage mit allen Informationen aktualisiert, die Sie gesagt haben. Vielen Dank für Ihre Hilfe. –
Egal, wo ich die neue Regel einsetze, ist die "Login" -Regel am Ende der '/ community/.htaccess' eine andere Idee? –