Ne cherchez plus, PhP5.5 ne fonctionne pas sur IIS6, utilisez la version PhP5.4.
Author: laurent - responsable Technique
IIS6, ISAPI rewrite
301 avec et sans www
Exemple en excluant les stats awstats et tout le dossier admin
|
1 2 3 4 |
RewriteEngine on RewriteCond %{HTTP_HOST} ^domaine\.ext$ [NC] RewriteCond $1 !^(awstats\.pl|admin) RewriteRule (.*) http://www.domaine.ext/$1 [NC,R=301,L] |
Ou pour exclure un dossier
|
1 |
RewriteRule ^(cgi-bin/.+) $1 [NC,L] |
Exemple avec des liens incluant des ?
|
1 2 3 |
RewriteEngine on RewriteCond %{HTTP_HOST} ^jcpoiret.rd-corsica.net$ [NC] RewriteRule ^(.*) http://www.jcpoiret.com%{REQUEST_URI} [NC,R=301,L] |
Changement de dossier
|
1 2 |
#redirecting to another URL RewriteRule ^dossier1/(.*)$ http://www.domaine.com/dossier2/$1 [L,R=301] |
Besoin d’autoriser la redirection seulement si une extension existe :
|
1 2 |
RewriteRule .*.html - [L] RewriteRule .*.asp - [L] |
Forcer le HTTPS
|
1 2 3 |
RewriteEngine On RewriteCond %{SERVER_PORT} !^443$ RewriteRule ^(.*) https://votre_domaine/$1 |
Cherche un mot
|
1 2 3 4 5 6 7 |
<rule name="Dacia" enabled="true" stopProcessing="true"> <match url="^modeles\.php$" ignoreCase="true" /> <conditions logicalGrouping="MatchAll" trackAllCaptures="false"> <add input="{QUERY_STRING}" pattern="marq=Dacia" /> </conditions> <action type="Redirect" url="index.php/autres/dacia" appendQueryString="false" redirectType="Permanent" /> </rule> |
Cherche un mot générique
|
1 2 3 4 5 6 7 |
<rule name="Query String Rewrite" stopProcessing="true"> <match url="^modeles\.php$" ignoreCase="true" /> <conditions logicalGrouping="MatchAll" trackAllCaptures="false"> <add input="{QUERY_STRING}" pattern="marq=([^=&]+)$" /> </conditions> <action type="Redirect" url="index.php/{C:1}" appendQueryString="false" redirectType="Permanent" /> </rule> |
Pour tester le type de redirection, une seule adresse :
http://www.annuaire-info.com/outil-referencement/test-redirection/
http://www.annuaire-info.com/lien-dur-lien-mou/
IIS6 WAMUserName
A la réinjection d’un backup ou changement de nom d’un serveur IIS, l’IWAm d’origine apparaît toujours. Pour ce, supprimez toutes les applications, arrêtez IIS puis dans : c\InetPub\AdminScripts\ lancez la commande suivante :
|
1 |
cscript adsutil.vbs SET W3SVC/WAMUserName IWAM_MachineName |
Si il revient, pensez à supprimer toutes les applications puis relancez l’opération.
Smart Upload, autoriser le téléchargement de gros fichiers
La valeur est définie par AspMaxRequestEntityAllowed dans la metabase de IIS, elle est de base fixée à 200 000.
– asp 0104 : « opération non autorisé ».
– Request object error ‘ASP 0104 : 80004005’
Operation not Allowed
/votre fichier, line de déclaration aspSmartUpload
Voici la procédure à suivre :
– Stopper IIS 6 ! sinon aucune action possible sur la metabase, au pire re démarrer le serveur si vous n’arrivez pas à enregistrer le fichier.
– Voire mieux : clic droit sur « Gestionnaire des Services Internet (IIS) » et cochez l’activation de la modification directe de la metabase le temps de faire votre modif…
– Ouvrir le fichier metabase.xml placé dans c:\windows\system32\inetsrv
– Trouver la ligne AspMaxRequestEntityAllowed et changer la valeur par « 1073741824 » (pour 1Go).
Have a good Upload …
PS : Big dédicasse à nos amis Belges pour leurs investigations, merci Mike.
SPF
Vos emails sont hébergés un autre serveur que celui qui expédie vos emails et vous ne passez pas le barrage du SPF ou du Hello, aucun souci dans la zone DNS on va juste rajouter un ch’tit commentaire :
|
1 |
v=spf1 ip4:IP_officiel_serveur_de_mail a:IP_ou_Domaine_du_serveur_de_relais -all |
Et voilà le travail.
Créer une table ACCESS vide
Voilà un petit code fort pratique en ASP pour copier une table vide avec le nom de votre choix (nom_table). La table VIDE correspond à la table que vous souhaitez copier, bien entendu vous aurez pris soin de la créer avec les champs de votre choix sans données.
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 |
<%@ Language=VBScript %> <% ' === création table M si inexistante ============================================= Set ConBDD = CreateObject("ADODB.Connection") sDB = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:\www\chemin_physique_vers_votre_base" conBDD.Open sDB dim rs2:set rs2=createobject("ADODB.recordset") nom_table = DatePart("m",Date()) &"_"& DatePart("yyyy",Date()) flag_er=True rs2.open conBDD.OpenSchema (20) do while not rs2.eof if rs2(3)= "TABLE" then if rs2(2)= nom_table then flag_er=False: exit do end if end if rs2.movenext loop rs2.close if flag_er then conBDD.execute "SELECT * INTO " & nom_table & " from VIDE;" ' table vide avec les champs prédéfinis rs2.open "select * from STATS order by id_stat", conBDD,1,2 rs2.addnew rs2("stat_table") = nom_table rs2.update rs2.close end if ' fermeture connexion set rs2=nothing: set rs=nothing conBDD.Close '---- Détermine si l'année est bisextiles ou pas ---- Function BisexYear(WhichYear) If WhichYear/4=Int(WhichYear/4) Then BisexYear=True Else BisexYear=False End If End Function '---- Le nombre de jours dans un mois ---- Function xDaysIn(WhichDate) Dim xdays xDays=Array("","31","","31","30","31","30","31","31","30","31","30","31") If Month(WhichDate)=2 Then If BisexYear(Year(WhichDate))=True Then xDaysIn=29 Else xDaysIn=28 End If Else xDaysIn=xDays(Month(WhichDate)) End If End Function %> |
PS : Vous noterez deux petites fonctions capables de déterminer si l’année est bissextile et le nombre de jours dans un mois.
Smartp Upload, exemple d’utilisation
Un petit exemple simple d’utilisation de smart upload :
|
1 2 3 4 5 6 7 |
<form method="post" action="tapagedetraitement.asp" ENCTYPE="multipart/form-data" id=form1 name=form1> <table width="100%" border=0> <tr><td align=center><input type="file" name="fichier" class=form></td></tr> <tr><td> </td></tr> <tr><td align=center><input type="submit" value="Enregistrer" class=envoi2 name=submit></td></tr> </table> </form> |
La page de traitement :
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
cheminPDF = Server.MapPath("download/") &"\" Set mySmartUpload = Server.CreateObject("aspSmartUpload.SmartUpload") mySmartUpload.Upload For each file In mySmartUpload.Files If not file.IsMissing Then nom_ext = file.FileExt ' extension nom_fichier = file.FileName ' nom complet if lcase(nom_ext)="pdf" then ' rec --------------------------------------------------------- file.SaveAs cheminPDF & nom_fichier mem="": msg="<b><font color=green>> Votre fichier est correctement enregistré.</font></b>" else mem="erreur": msg="<b><font color=red>> Votre fichier n'est pas un .pdf, il n'a pu être enregistré.</font></b>" end if Else mem="erreur": msg="<b><font color=red>> Fichier manquant, vous avez oublié de sélectionner un PDF.</font></b>" End if Next Set mySmartUpload = Nothing response.write(msg) |
en admettant bien entendu qu’on stocke les fichiers dans le dossier /download.
MSXML sous IIS7
Comment utiliser msxml 3 ou 6 en ASP :
|
1 2 3 4 5 6 7 8 |
<% url = "http://www.serveur-windows.com" set xmlhttp = CreateObject("MSXML2.ServerXMLHTTP.6.0") xmlhttp.open "GET", url, false xmlhttp.send "" Response.write xmlhttp.responseText set xmlhttp = nothing %> |
Pour utiliser la 3.0 il faudra donc écrire :
|
1 |
set xmlhttp = CreateObject("MSXML2.ServerXMLHTTP.3.0") |
URL rewriting via le web.config
Trouvé sur aspfr.com par Vladam, et ça marche du tonnerre, tout est implémenté dans le web.config avec la dll URLRewriter.dll :http://www.aspfr.com/codes/IMPLEMENTER-TRES-FACILEMENT-URLREWRITER-REECRITURE-URL-NET-GENIAL_31527.aspx
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
1°) Ouvrez votre WEB.CONFIG et ajoutez les éléments suivants : - Dans la section <configuration> ajoutez le code ci-dessous <configSections> <section name="RewriterConfig" type="URLRewriter.Config.RewriterConfigSerializerSectionHandler, URLRewriter" /> </configSections> - Dans la section <system.web> ajoutez le code ci-dessous <httpModules> <add type="URLRewriter.ModuleRewriter, URLRewriter" name="ModuleRewriter" /> </httpModules> <httpHandlers> <add verb="*" path="*.aspx" type="URLRewriter.RewriterFactoryHandler, URLRewriter" /> </httpHandlers> 2°) Il ne vous reste plus qu'a définir les Urls que vous souhaitez pour le rewriting pour cela, c'est très simple : Dans la section <configuration> sous l'élément <configSections> que vous avez déjà ajouté dans l'étape 2, vous ajoutez le nouvelle section ci-dessous : <RewriterConfig> <Rules> <RewriterRule> <LookFor>~/cartes_virtuelles_amour\.aspx</LookFor> <SendTo>~/themes.aspx?rel=4&title=AMOUR</SendTo> </RewriterRule> </Rules> </RewriterConfig> Et vous pouvez répéter l'éléments <RewriterRule> autant de fois que vous avez de page à réécrire. |
Un tableau sans champ vide après un split
Une astuce toute simple qui permet de spliter un tableau sans plus se soucier d’un champ vide.
|
1 |
tabTemp = tabIp.Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries); |