2017-09-15 14 views
1

私はmodの書き換えをかなり新しくしています。プライベートフォーラムユーザーのために次のことを達成しようとしています。ブラウザはフォーラムに行くと、ユーザーがログインしていないときにhtaccess subdirからrootへのリダイレクトをパラメータとして参照者を渡します

https://www.example.com/community/index.php?/topic/this-is-the-topic 

フォーラムは{QUERY_STRING}/login/を注入:民間フォーラムは、サイトのサブディレクトリにcommunity

ユーザーが電子メールのリンクをクリックすると呼ばれていますURLには表示されず、Webサイトのログインページが表示されます。これは、ユーザーが必要なRewriteRuleに関連してログインしているかどうかを確認する唯一の方法です。

URLは、ログインページに到達したときに、このように見える必要があります:

https://www.example.com/login.php?redirect_to=https://www.example.com/community/index.php?/topic/this-is-the-topic 

私がしようとしたことは次のとおりです。

私は、この取得
RewriteCond %{QUERY_STRING} /login/(.*)$ [NC] 
RewriteRule ^(.*)$ https://www.example.com/login.php?redirect_to=%{REQUEST_URI} [L,R=301] 

https://www.example.com/login.php?redirect_to=/community/index.php 

を疑問符の後に他のすべてがありません...

私はのRewriteRuleに{REQUEST_URI}%{QUERY_STRING}を追加する場合は、その後login{QUERY_STRING}/community後に注射し、その後&ref=された電子メールから元の参照URLのBase64でエンコードされたバージョンが含まれていることがわかります。

UPDATE:

コミュニティはコミュニティのサブディレクトリ の民間フォーラムで、2つの.htaccessファイルのルートに1つ、コミュニティDIR自己の他があります。

私たちは必ずすべてのHTTPトラフィックはHTTPS

ルートの.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

に強制されるようにする必要があり を私はこれを継承してきたし、私にhtaccessのファイルは少し厄介に見える

コミュニティ.htaccessファイル

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

と私はこれをテストするために使用しようとしていますURLは

https://tribe.mytechnologybusiness.com/community/index.php?/topic/162-sydney-tribal-meetup-thursday-14th-september-2017/ 

で誰がこれで私を助けることができますか?あなたの/community/.htaccess最初のルールとしてこのルールを使用することができます

乾杯、

答えて

1

:そのため

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

感謝。それは私のために働かなかった...私はファイルに他のルールがあります。いくつかはWordPressなどからhttpをhttpsリダイレクトに強制するものです。コミュニティディレクトリにも独自のhtaccessファイルがあります。 2つのファイルの詳細とコピーを送信する方法はありますか? –

+0

あなたが提案したように試みましたが、まだ行っていません。だから私はあなたが言ったすべての情報で質問を更新しました。すべてのあなたの助けをありがとう。 –

+0

新しいルールをどこに置いても、トリガされたルールは '/ community/.htaccess'の下部にある' Login'ルールです。 –

関連する問題