質問hereは私の疑問に答えるようですが、IISのパターンテストに失敗し、regex101.comで無効とフラグが立てられます。RegexはIISのルートディレクトリにある.htmlファイルにマッチします。
サブドメイン(m.mydomin.com)でホストされている私のサイトのよりモバイルフレンドリーなバージョンにモバイルクライアントをリダイレクトしようとしていますが、(まだ)取得されていない他のスクリプトとフォルダがあります彼らのモバイルフレンドリー対応。 Manglementは、モバイル対応のサイトのセクションのクライアントのリダイレクトを開始することを決めました。
基本的に私は必要なもののみを発射する書き換えルールです:
- クライアントは
- リクエストはROOTで* .htmlのファイルのあるモバイルクライアントです。そこで、基本的
:
- /index.htmlが
- /somepage.html
は、モバイルクライアントのためにリダイレクト、しかしれるべき/someotherpage.html
- /s
- /script.php?omgwtfisgoingon =真
がリダイレクトされないはずです
が正常に動作します私の現在のリダイレクトですが、任意のモバイルクライアントのためのすべてのページで火災:
<rule name="Mobile Rewrite" patternSyntax="ECMAScript" stopProcessing="true">
<match url=".*" ignoreCase="true" negate="false" />
<conditions logicalGrouping="MatchAny" trackAllCaptures="false">
<add input="{HTTP_USER_AGENT}" pattern="midp|mobile|phone" />
</conditions>
<action type="Redirect" url="http://m.domain.com/{ToLower:{R:0}}" appendQueryString="true" redirectType="Found" />
</rule>
私がチェック第二の入力とMATCHALLするルールを変更するには、それを更新する上で計画していました* .htmlファイルですが、正常に動作するように私の頭脳を包むことはできません。残念なことにこれらはhtmlファイルなので、コードレベルでこれをやっているわけではなく、IISによって行われなければなりません。
最終IISのリダイレクトコードをお探しの方のための編集:
<rule name="Mobile Rewrite" patternSyntax="ECMAScript" stopProcessing="true">
<match url=".*" ignoreCase="true" negate="false" />
<conditions logicalGrouping="MatchAll" trackAllCaptures="false">
<add input="{HTTP_USER_AGENT}" pattern="midp|mobile|phone" />
<add input="{REQUEST_URI}" pattern="^\/[^\/]+\.html$" />
</conditions>
<action type="Redirect" url="http://m.domain.com//{ToLower:{R:0}}" appendQueryString="true" redirectType="Found" />
</rule>
'.html'の後ろに何もないことを確認するために、最後に' $ 'を追加したいかもしれません。 – jotaelesalinas
更新された回答。 –
驚くばかりの人、これは私の期待通りにうまくいった、ありがとう。投票し、受け入れられた答えとしてタグ付けされました。 – Caleb