Archive for octobre, 2010
cmsms – pretty_urls, url rewriting, htacess et sous dossier
Lors de la mise en place d’un site basé sur CMSMS, vous pouvez être amené à installer le CMS dans un sous dossier, par exemple : http://www.domaine.tld/cmsms/.
Hors, dans ce cas de figure, la configuration des « Pretty-URLs » comme indiqué ici :
http://wiki.cmsmadesimple.org/index.php/FAQ/Installation/Pretty_URLs#Pretty_URL.27s
ne fonctionnera pas.
En effet, le système va considérer que le site est systématiquement à la racine du domaine. Dans le cas présent, en mettant en place les « Pretty_URLs » comme indiqué dans le fichier de configuration, j’ai créé un fichier .htaccess comme recommandé pour utiliser les noms de page avec .htm :
[perl] Options +FollowSymLinks
RewriteEngine on
RewriteBase /
# 301 Redirect all requests that don’t contain a dot or trailing slash to
# include a trailing slash
# except for form POSTS
# RewriteCond %{REQUEST_URI} !/$
# RewriteCond %{REQUEST_URI} !\.
# RewriteCond %{REQUEST_METHOD} !POST$
# RewriteRule ^(.*) %{REQUEST_URI}/ [R=301,L]
# Rewrites urls in the form of /parent/child/
# but only rewrites if the requested URL is not a file or directory
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+).htm$ index.php?page=$1 [QSA] [/perl]
Hors, dès l’activation, mes pages revenaient en erreur. Pour corriger ceci, il faut modifier la dernière règle de rewriting en y incluant l’emplacement dans lequel vous avez installé cmsms. Si par exemple vous etes dans ce cas de figure « http://www.domaine.tld/cmsms/ », votre fichier .htaccess devra être modifié comme suit (voir la dernière ligne) :
[perl] Options +FollowSymLinks
RewriteEngine on
RewriteBase /
# 301 Redirect all requests that don’t contain a dot or trailing slash to
# include a trailing slash
# except for form POSTS
# RewriteCond %{REQUEST_URI} !/$
# RewriteCond %{REQUEST_URI} !\.
# RewriteCond %{REQUEST_METHOD} !POST$
# RewriteRule ^(.*) %{REQUEST_URI}/ [R=301,L]
# Rewrites urls in the form of /parent/child/
# but only rewrites if the requested URL is not a file or directory
RewriteRule ^News/rss(.+)$ index.php?page=News/rss$1 [S=1]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+).htm$ /cmsms/index.php?page=$1 [QSA][/perl]
Le problème sera ainsi résolu et vous disposerez des « Pretty-URLs » basée sur l’URL rewriting, qui peuvent optimiser le référencement de votre site.
WordPress : changer la couleur de la barre d’administration
Si vous administrez plusieurs blogs propulsés par wordpress, vous avez peut être du mal à identifier l’interface d’administration de chaque site !
En effet, par défaut, wordpress permet de choisir seulement 2 couleurs (bleu ou gris) pour l’interface d’administration. Avec plusieurs blogs à gérer, vous aurez vites fait de vous tromper de site à cause de la ressemblance de l’interface d’administration.
Mon astuce va être de changer la couleur de la barre du haut, afin de clairement identifier dans quelle admin je suis.
Pour faire ceci, il y a des plugins, mais je n’ai rien trouvé de vraiment simple ou efficace.
De toute façon la modification est toute simple, et ne vaut pas la peine de s’en priver !
Pour changer la couleur de la barre du haut, nous allons éditer deux fichiers CSS situé dans /wp-admin/css (de votre blog):
– colors-classic.css (le theme par défaut, avec une barre bleue monochrome)
– colors-fresh.css (le theme optionnel avec une barre contenant un degradé CSS)
Le fichier colors-classic.css sur wordpress 3.0.1 est constitué d’une seule ligne dans laquelle nous allons rechercher la valeur « wphead » jusqu’à tomber sur :
[css]#wphead{background-color:#1d507d;}[/css]
Ici vous remplacez le #1d507d par la couleur de votre choix.
Ensuite, on attaque le deuxième fichier, colors-fresh.css dans lequel on cherche également la valeur « wphead » jusqu’à tomber sur :
[css]#wphead{border-bottom:#c6c6c6 1px solid;background:#d9d9d9;background:-moz-linear-gradient(bottom,#d7d7d7,#e4e4e4);background:-webkit-gradient(linear,left bottom,left top,from(#d7d7d7),to(#e4e4e4));}[/css]
Dans cette ligne vous allez remplacer les valeurs #d9d9d9, #d7d7d7 (2 fois) par le code couleur de votre choix, exemple :
[css]#wphead{bor
der-bottom:#c6c6c6 1px solid;background:#f9d718;background:-moz-linear-gradient(bottom,#f9d718,#e4e4e4);background:-webkit-gradient(linear
,left bottom,left top,from(#f9d718),to(#e4e4e4));}[/css]
Et voilà !! Dans les deux choix de couleur, vous aurez la top-barre de l’interface d’administration dans la couleur de votre choix. Personnalisez ainsi chacun de vos blogs wordpress, et vous saurez en un coup d’oeil si vous travaillez sur le bon.
AWK – remplacement de caractères et parser des fichiers
La commande awk permet d’effectuer des traitements sur des chaines de caractères ou des fichiers en se basant sur des modèles et un langage propre, ainsi que l’utilisation d’expressions rationnelles.
Premier exemple, parser une ligne contenant des termes séparés par un espace (tout se passe dans un terminal sous GNU/Linux of course) :
On charge une variable avec ces 3 mots :
[bash]ligne="mot1 mot2 mot3"[/bash]
Puis on veut extraire le premier mot :
[bash]echo $ligne|awk -F " " ‘{print $1}'[/bash]
ou extraire le premier et le troisieme :
[bash]echo $ligne|awk -F " " ‘{print $1 $3}'[/bash]
On notera qu’ici -F permet de définir le séparateur de champs, puis, la commande « print » permet d’afficher la valeur contenue dans le champs choisi (indexé de 1 à n). L’index « 0 » comme en bash, représente l’ensemble de la chaine originale passée en argument.
AWK permet également des traitements sur les chaines de caractères, afin par exemple d’opérer un remplacement basé sur un modèle.
On charge une variable avec une chaine :
[bash]ligne="le chien est noir,le chat est gris"[/bash]
Et on va changer la couleur du chien et ne garder que le chien :
[bash]echo $ligne|awk -F "," ‘{gsub("noir","blanc",$1);print $1}'[/bash]
Ceci va afficher « Le chien est blanc ». Comme vu plus haut, le -F permet de casser la chaine sur toutes les virgules rencontrées, chaque élément est accessible via l’index en variable ($1 ou $2 ici). Puis, la commande gsub (substitution) permet de remplacer toute valeur « noir » par « blanc », dans la variable $1 (soit la partie avant la virgule).
La commande gsub s’est donc appliquée à $1, l’instruction print est indépendante, on aurait pu taper:
[bash]echo $ligne|awk -F "," ‘{gsub("noir","blanc",$1);print $1","$2}'[/bash]
afin d’afficher la partie modifiée et la seconde non modifiée.
Jusqu’ici nous avons travaillé sur des variables, mais awk permet de travailler sur des fichiers pour un traitement rapide.
Prenons le fichier /etc/passwd qui contient des éléments de ce type : root:x:0:0:root:/root:/bin/bash
Nous souhaitons par exemple afficher une liste des utilisateurs existants, leur home, et le shell associé. On constate donc que le « : » peut être utilisé comme séparateur.
Nous allons donc afficher le listing voulu de la manière suivante (login => home => shell) :
[bash]awk -F "\:" ‘{print $1" => "$6" => "$7}’ /etc/passwd[/bash]
Dans ce dernier point, nous avons parsé directement un fichier, et affiché le résultat dans la console. Il est possible de renvoyer le résultat dans un fichier avec une simple redirection :
[bash]awk -F "\:" ‘{print $1" => "$6" => "$7}’ /etc/passwd > mon_listing.txt[/bash]
Vous pouvez utiliser différents caractères spéciaux codés de la manière suivante :
\\ Un antislash.
\b retour arriere (backspace).
\n nouvelle ligne.
\r retour chariot.
\t tabulation horizontale.
\v tabulation verticale.
De manière générale les caractères spéciaux (* % etc.) doivent être « échappés » par un antislash.
On peut également utiliser les expressions régulières (ou rationnelles) afin de définir un séparateur.
[bash]awk -F "[^a-z|^A-Z|^0-9|^–|^/|^,]" ‘{print $1" => "$2" => "$3" => "$4" => "$5" => "$6" => "$7}’ /etc/passwd[/bash]
Dans l’exemple ci dessus, on va lire le fichier /etc/passwd on utilisant comme séparateur de champs l’expression rationnelle suivante :
[bash][^a-z|^A-Z|^0-9|^–|^/|^,][/bash]
Celle ci signifie que sera considéré comme séparateur de champs tout caractère qui n’est pas alphanumérique en majuscule ou minuscule, et différent de -, de / et de ,.
Plus d’informations sur les expressions rationnelles : http://fr.wikipedia.org/wiki/Expression_rationnelle
Dernier exemple, on va passer une chaine en majuscule avec la fonction « toupper » (il existe aussi tolower pour l’inverse):
[bash]echo "Coucou comment ça va?"|awk ‘{print toupper($0)}'[/bash]
Pour plus d’informations, man awk
Links
Recherche
Derniers articles
Tresronours Twitter
Keywords cloud topic
Membre de la FSF
Liens qui vont bien
Mots clés vrac – keyword cloud
License du contenu – CC By NC SA
Archives
- Resumed posting and expanding on X
- Linkedin Access to your account has been restricted – Final debrief and resilience plan
- I’m thankful for the support I get in rough time
- Cyber security news of the day – 2024 May 31
- Alexandre Blanc Cyber Kicked out from Linkedin
- You’ll most likely find me on LinkedIn
- The Russian roulette landing page !
- RTSP, Debian, VLC, not playing, IP Camera
- 5G network hosted in the cloud, no internet, no phone ! So smart ! And I ended on TV, This week in cyber
- They lock the door for privacy… but they keep a copy of the key, and couple of backdoors
- Worst is yet to come, but they all warned you
- Migrating an old WordPress and handling character set, UTF8, latin1, latin1_swedish_ci
- From a broken TLS CA, to Facebook, to FIN12 hit and run
- Yes we can fix this mess, but do we want to ? That’s another story
- Criminals are still dominating the game, why are we doing so wrong, and what can we learn in this tech ocean ?
- Riding cloud can be tricky, don’t fall from it, in the weekly cyber !
- The threat landscape is very dynamic – Cyber news this week
- Cybersecurity is not obvious even for this newsletter !
- Install Slack desktop app on Kali rolling fixing libappindicator3-1 missing dependency
- How to delete all resources in azure to avoid charges after trial on your forced credit card registration
- Proxmox – ZFS – Dead drive on active VM, recover from replicated disk
- Restrict access to proxmox web admin interface
- Migrate your ESXI VMs to proxmox ZFS
- Install your VPN server with pi-hole on OVH VPS in 30 min
- Using raspberry pi 3 as wifi bridge and repeater and firewall
- Raspberry 3 – create a wifi repeater with USB wifi dongle
- raspberry 3 – routeur pare feu point d’acces wifi avec filtrage pub et tracking – router firewall access point with ads and tracking filtering
- Dell XPS 13 touchpad – corriger la sensibilité
- Utiliser Zazeen set top box depuis une connexion videotron
- Fermeture de mon compte facebook – la dernière goutte
- Choisir un kernel par defaut au demarrage de Centos 7.2 – configuration grub2
- Openvpn access server 2.0.25 et android
- Régler la luminosité du laptop par ligne de commande
- chromium outlook web app version complete sous linux
- Nexus 7 2012 – android 5 lollipop solution au probleme de lenteur
- HDD led sur Xubuntu – xfce
- xubuntu 14.04 verrouiller ecran de veille et desactiver mise en veille a la fermeture de l’ecran
- Authentification avec Radmin en utilisant Wine sur Gentoo
- Patcher bash sur une distribution plus supportee comme fedora 11
- Zimbra desktop sous xubuntu 14.04 64bit – fix
- xubuntu 12.10 probleme de son avec VLC – pulse audio – alsa – toshiba L855D – solution
- Evolution sous xubuntu 12.10 – bug affichage a la configuration – solution temporaire
- Booster son acces internet en changeant de DNS pour opendns
- Serveur DLNA sous ubuntu – minidlna
- sshfs sous windows – dokan sshfs
- xubuntu 11.10 Installer le plugin java pour firefox
- Installer Google Earth sur Xubuntu 11.10
- Installer nagios sur Fedora 11 depuis les sources
- Configurer varnish-cache avec des virtualhosts, apache, fedora, redhat, centos
- Installer Varnish depuis les sources sur Fedora 11