2009-08-21 8 views
0

Je veux implemewnt URL-Rewriting de manière que l'utilisateur peut accéder au site avec username.domain.comURL réécrivant dans ASP.Net

par exemple
www.abc.com/login.aspx
Je devrais être en mesure d'accéder à ce comme
www.username.abc.com/login.aspx

blogspot est aussi l'un des exemples comme http://username.blogspot.com/

Plz me suggère comment puis-je accomplir cela.

Merci

+0

Je peux me tromper, mais je ne sais pas si il est possible de réécrire l'URL de la même façon que vous utilisez des sous-domaines. Si c'est quelque chose que vous avez à faire via IIS, je suis sûr. –

Répondre

2

Fondamentalement, ce que vous devez faire est d'utiliser un outil comme le Managed Fusion URL Rewriter and Reverse Proxy, la règle suivante.

RewriteCond {HOST} www\.(.*)\.abc\.com 
RewriteRule ^/login.aspx$ /login.aspx?domain=%1 
RewriteRule ^/login.aspx?domain=www\.(.*)\.abc\.com$ /login.aspx?user=$1 

Il viendra à votre application interne comme

URL: www.nick.abc.com/login.aspx 
Internal URL: www.abc.com/login.aspx?user=nick 

La chose que vous devez résoudre que vous ne l'avez pas l'adresse est comment allez-vous pour obtenir le nom de l'utilisateur et comment allez-vous va les gérer en interne.

Mais vraiment vous n'avez pas besoin d'un réécriveur d'URL. Vous transférez simplement tout le trafic DNS à la même adresse IP, puis vous gérez le domaine avec votre application au lieu de le contrôler via le DNS.

+0

ces règles doivent être mises dans le fichier ManagedFusion.Rewriter.txt? –

+0

oui ils devraient être mis là, évidemment vos règles vont différer de celles que j'ai posté ci-dessus. –

+0

se déroger en accédant à http://rt.nexapps.com/Login.aspx plz vérifier merci –

0

Il est possible avec ISAPI Rewrite installé sur le serveur

Vous devez mettre cela dans le fichier httpd.ini du site

# Convert http://example.com to http://www.example.com/ 
RewriteCond Host: ^example.com 
RewriteRule (.*) http\://www\.example.com$1 [I,RP] 

# Assuming we have limited number of shared folders. 
# We will execute them accordingly regardless of the subdomain. 
# Example: http://sub1.example.com/img/logo.jpg -> /img/logo.jpg 
# Example: http://www.example.com/img/logo.jpg -> /img/logo.jpg 
RewriteRule (/css/.*) $1 [I,O,L] 
RewriteRule (/js/.*) $1 [I,O,L] 
RewriteRule (/img/.*) $1 [I,O,L] 

#Redirect all other subdirectories not matching 
#to the list above as subdomains 
#example: www.example.com\sub1 -> sub1.example.com 
RewriteCond Host: www\.example\.com 
RewriteRule /(\w*)/(.*) http\://$1\.example\.com$2 [I,RP] 

# If the web site starts with www then point the file to the root folder 
# If you specifically created a folder /www/ then you can comment out this section. 
RewriteCond Host: (?:www\.)example.com 
RewriteRule (.*) $1 [I,O,L] 

# Any web site starts other than www will be re-mapped to /<subdomain>/ 
# Example: http://sub1.example.com/default.asp -> /sub1/default.asp 
# Note: if the folder does not exists, then the user will get a 404 error automatically. 
RewriteCond Host: (.*)\.example.com 
RewriteRule (.*) /$1$2 [I,O,L] 

#Fix missing slash char on folders 
#This has to be at the end because if invalid dir exists, 
#we should show 404 first 
RewriteCond Host: (.*) 
RewriteRule ([^.?]+[^.?/]) http\://$1$2/ [I,RP] 

La partie essentielle est celle-ci :

# Any web site starts other than www will be re-mapped to /<subdomain>/ 
# Example: http://sub1.example.com/default.asp -> /sub1/default.asp 
# Note: if the folder does not exists, then the user will get a 404 error automatically. 
RewriteCond Host: (.*)\.example.com 
RewriteRule (.*) /$1$2 [I,O,L] 

C'est le meilleur moyen que j'ai pu trouver. Si vous n'avez pas accès aux sessions du serveur et que vous n'avez pas installé ISAPI, ce n'est pas pour vous.

Voici le lien vers l'article http://www.seoconsultants.com/windows/isapi/subdomains/

0

Essayez ceci dans config Web sous system.web

<system.web> 
    <urlMappings enabled="true"> 
     <add url="~/myaccount" mappedUrl="myaccount.aspx"/> 
    </urlMappings> 

dans le code behind écrire

Response.redirect("~/myaccount")` 

Cela fonctionne 100%