2017-09-15 4 views
1

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 communityhtaccess 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

ist gezwungen, um sicherzustellen, dass

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,

Antwort

1

Sie diese Regel als erste Regel verwenden kann in Ihrem /community/.htaccess:

RewriteEngine On 

RewriteCond %{QUERY_STRING} /login/ [NC] 
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/+(community/index\.php\S*) [NC] 
RewriteRule^/wp-login.php?redirect_to=https://%{HTTP_HOST}/%1 [L,NC,R=301,NE] 

# rest of your rules go here 
+0

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? –

+0

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. –

+0

Egal, wo ich die neue Regel einsetze, ist die "Login" -Regel am Ende der '/ community/.htaccess' eine andere Idee? –

Verwandte Themen