0

夜、

Web サイトを subdomain.domain.com から domain.com/subdomain に移動する任務を負っています。

私が持っている問題:

元のサブドメインとドメイン名の両方に URL 書き換えルールがあります (asp.net、UrlReWriter)

そのため、サブドメインのコンテンツ ファイルをメイン ドメインの下の新しいサブフォルダーに移動 (または、コピー) しました。問題はないように見えますが、1 つまたは 2 つの問題があります...

以下を一致させる必要があります。

http://www.maindomain.com/category.aspx?name=foo -> http://www.maindomain.com/foo/ http://www.maindomain.com/viewproduct.aspx?catName=foo&productName=bar -> http://www.maindomains.com/foo/bar.aspx

私はすでにそのビットを機能させていますが、構成ファイルの継承のために、メインアプリケーション (メインドメイン) の web.config で書き換えルールを指定する必要があるため、これらのルールも一致させる必要があります。

http://www.maindomain.com/us/category.aspx?name=foo -> http://www.maindomain.com/us/foo/ http://www.maindomain.com/us/viewproduct.aspx ?catName=foo&productName=bar -> http://www.maindomain.com/us/foo/bar.aspx

明らかに、書き換えエンジンは css/images 他のファイルなどを無視する必要があります。たとえば、次のようになります。

http://www.maindomain.com/about.aspx & http://www.maindomain.com/us/about.aspx

他の情報が必要な場合は、お問い合わせください..

現時点で私が持っているルールは次のとおりです。

    <rewrite url="^(/.+(\.gif|\.png|\.jpg|\.ico|\.pdf|\.css|\.js)(\?.+)?)$" to="$1" processing="stop"/>
<rewrite url="^/us/.+(\.gif|\.png|\.jpg|\.ico|\.pdf|\.css|\.js)(\?.+)?$" to="$1" processing="stop"/>

<rewrite url="^/us/Error.aspx" to="$1" processing="stop"/>
<rewrite url="^/us/Error404.aspx" to="$1" processing="stop"/>

<rewrite url="Error.aspx" to="$1" processing="stop"/>
<rewrite url="Error404.aspx" to="$1" processing="stop"/>

    <rewrite url="^/us/$" to="$1" processing="stop"/>
<rewrite url="^/us/(.+)/(.+).aspx" to="/us/viewProduct.aspx?productName=$2&amp;catName=$1" processing="stop"/>
<rewrite url="^/us/(.+)/" to="/us/category.aspx?name=$1" processing="stop"/>

<rewrite url="^/(.+)/(.+).aspx" to="~/viewProduct.aspx?productName=$2&amp;catName=$1" processing="stop"/>
<rewrite url="^/(.+)/" to="~/category.aspx?name=$1" processing="stop"/>

使用、iis7.5、c#、asp.net v2 ありがとうマイケル

4

1 に答える 1

0

ここにはいくつかの問題があります。1 つ目は、次の書き換えルールが機能しないことです。

<rewrite url="^/us/$" to="$1" processing="stop"/>

URL を一致グループ 1 に置き換えるように書き換えモジュールに要求して/us/いますが、キャプチャ式にグループがありません。これを修正し、フォルダー内の .aspx ファイルを処理するに/us/は、次の 2 つのルールに置き換えます。

<rewrite url="^/us/$" to="/us/default.aspx" processing="stop"/>
<rewrite url="^(/us/[^/]+\.aspx)$" to="$1" processing="stop"/>

さらに、2 番目の書き換えルール (/us/フォルダー内の静的コンテンツ用) は必要ありません。最初の書き換えルールは、ファイルがどのフォルダーにあるかを気にせず、/us/images/foo.jpg.

于 2012-05-12T12:23:53.650 に答える