2011-10-19 3 views
3

J'ai un site hébergé sur IIS7 et je voudrais impliment url rewriting sur elleURL Rewriting avec IIS7

Mon URL actuelle blog.mysite.com/article.aspx?name=marriage

Je veux de réécrire à

blog.mysite.com/marriage

J'ai essayé quelques règles mais rien donner la solution parfaite.

S'il vous plaît partager vos idées et serait utile pour moi

vous remercie tous

Shibin

Répondre

2

En supposant que vous utilisez ensuite Microsoft Réécrire 2.0 votre modèle serait:

^([^/] +) /? $

Et votre URL de réécriture serait:

?

article.aspx name = {R: 1}

Pour rediriger tout simple du nouveau système d'URL pour l'ancien mis cela dans la section system.webServer de votre web.config:

<rewrite> 
    <rules> 
    <rule name="RewriteUserFriendlyURL1" stopProcessing="true"> 
     <match url="^([^/]+)/?$" /> 
     <conditions> 
     <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" /> 
     <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" /> 
     </conditions> 
     <action type="Rewrite" url="article.aspx?name={R:1}" /> 
    </rule> 
    </rules> 
</rewrite> 

Pour faire également des redirections de l'ancienne à la nouvelle URL, les anciennes urls seront automatiquement mises à jour vers le nouveau schéma, et pour inclure le traitement qui réécrira votre sortie html pour utiliser le nouveau schéma d'url, vous pouvez remplacer le précédent par:

<rewrite> 
    <rules> 
    <rule name="RedirectUserFriendlyURL1" stopProcessing="true"> 
     <match url="^article\.aspx$" /> 
     <conditions> 
     <add input="{REQUEST_METHOD}" pattern="^POST$" negate="true" /> 
     <add input="{QUERY_STRING}" pattern="^name=([^=&amp;]+)$" /> 
     </conditions> 
     <action type="Redirect" url="{C:1}" appendQueryString="false" /> 
    </rule> 
    <rule name="RewriteUserFriendlyURL1" stopProcessing="true"> 
     <match url="^([^/]+)/?$" /> 
     <conditions> 
     <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" /> 
     <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" /> 
     </conditions> 
     <action type="Rewrite" url="article.aspx?name={R:1}" /> 
    </rule> 
    </rules> 
    <outboundRules> 
    <rule name="OutboundRewriteUserFriendlyURL1" preCondition="ResponseIsHtml1"> 
     <match filterByTags="A, Form, Img" pattern="^(.*/)article\.aspx\?name=([^=&amp;]+)$" /> 
     <action type="Rewrite" value="{R:1}{R:2}/" /> 
    </rule> 
    <preConditions> 
     <preCondition name="ResponseIsHtml1"> 
     <add input="{RESPONSE_CONTENT_TYPE}" pattern="^text/html" /> 
     </preCondition> 
    </preConditions> 
    </outboundRules> 
</rewrite>