2

私はISAPI_Rewriteを初めて使用し、正規表現がひどいです。サブドメインを削除してパラメータとして渡すISAPI_Rewriteの書き換えルールが必要です。例えば:

mysubdomain.mydomain.com

になる必要があります

mydomain.com/Landing.aspx?ID=mysubdomain

を除くすべてのサブドメインに一致するように見える正規表現を見つけましwwwたが、上記の例に示すように、サブドメインをパラメーターとして渡す方法がわかりません。

^((?:(?!www).)*)

どんな助けでもいただければ幸いです。

注:フルバージョンのISAPI_Rewriteを使用しているため、このルールはサイトレベルになります。


グローバルルール:

# Helicon ISAPI_Rewrite configuration file
# Version 3.1.0.89

#Disable extentionless processing for ASP.Net v 4.0
RewriteRule (.*)eurl.axd/.* $1

# Don't rewrite urls that are inside the assets folder or have the following extentions
RewriteRule ((^/Assets/.*)|(.*\.axd.*)|(.*\.asmx.*)|(.*\.png.*)) $1 [NC,L]

#Rewrite URL, pass last portion of URL to Landing.aspx + purl
RewriteRule  (.*) $2/landing.aspx\?id=$1 [NC]
4

2 に答える 2

1

このようなものがあなたのために働くかもしれません:

# Turn mod_rewrite on
RewriteEngine On
RewriteBase /

RewriteCond %{QUERY_STRING} ^$
RewriteCond %{HTTP_HOST} ([^.]+)(?<!^www)(\.|$) [NC]
RewriteRule ^ Landing.aspx?ID=%1 [L,QSA]

PS:あなたのグローバルルールは上記の私のルールと矛盾しているようです。したがって、競合を避けるために、次のようなグローバルルールを設定することをお勧めします。

RewriteCond %{QUERY_STRING} ^$
RewriteCond %{HTTP_HOST} !mydomain\.com$ [NC]
RewriteRule ^(.*)$ landing.aspx?id=$1 [L]
于 2012-05-24T13:23:44.657 に答える
0

以下を使用してみてください。

RewriteEngine on
RewriteBase /

RewriteCond %{HTTP:Host} !^www\.mydomain\.com$
RewriteCond %{HTTP:Host} ^([^.]+)\.mydomain\.com$
RewriteRule ^$ /Landing.aspx?ID=%1 [NC,L]

301リダイレクトとリライトのどちらが必要かを指定しなかったため、リダイレクトする場合は、[NC、L]ではなく[NC、R = 301、L]を使用してください。

于 2012-05-24T13:39:53.443 に答える