こんにちは。
以下のコードを使用して、このカスタムルートで特定のURLを無視しようとしています。
(routes.rb ファイル)
get '/*path' => 'static#custom_redirect', constraints: lambda { |request| !request.path.include?('/preferences/' ) || !request.path.include?('/custom_sso_login/') || !request.path.include?('/t/' ) || !request.path.include?('/admin/') || !request.path.include?('/singup') || !request.path.include?('/login')}
「期待どおりに動作しません。この問題に対処した経験はありますか?」
hi @Canapin
Discourseサイトに表示されているDrupal URLトピックのカスタム機能を使用しています。
ユーザーがブラウザでDrupalサイトの古いURLにアクセスすると、システムはまずカスタムルートをチェックします。カスタムルートで指定された特定のURLを無視するか、'custom_redirect’関数に移動します。'custom_redirect’関数で、Discourse内のトピックを見つけ、ブラウザをそのリンクにリダイレクトします。
pfaffman
(Jay Pfaffman)
6
DrupalのURLを適切なDiscourseトピックに301リダイレクトさせたい場合は、permalink redirectsと、おそらくpermalink normalizationsを使用すると良いでしょう。
インポートスクリプトを使用した場合は、パーマリンクが作成されているはずです。これは/admin/customize/permalinksで確認できます。機能していない場合は、パーマリンク正規化を使用して修正できます。
@pfaffman
ディスコースでパーマリンクを使用していません。
私のコードは、古いサイトの投稿URLをディスコースのトピックまたは投稿にリダイレクトするために機能しています。
しかし、このコードでは、ログイン、サインアップ、その他のフォームなどのURLがブロックされます。
get ‘/*path’ => ‘static#custom_redirect’, constraints: lambda { |request| !request.path.include?(‘/preferences/’ ) || !request.path.include?(‘/custom_sso_login/’) || !request.path.include?(‘/t/’ ) || !request.path.include?(‘/admin/’) || !request.path.include?(‘/singup’) || !request.path.include?(‘/login’)}
何か見落としている点について、何かアイデアはありますか?