Par fichier .htaccess
Idéalement, passer par la modification du fichier .htaccess
Le guide ultime du fichier .htaccess dans WordPress
# Désactiver l'affichage du contenu des répertoires
Options All -Indexes
# OU ALORS
# Alternative pour empêcher le listage des répertoires
IndexIgnore *
########################################
# Masquer les informations du serveur
ServerSignature Off
# Activation du suivi des liens symboliques
Options +FollowSymLinks
# Choix du fuseau horaire
SetEnv TZ Europe/Paris
# Encodage par défaut des fichiers textes et HTML
AddDefaultCharset UTF-8
# Protéger le fichier wp-config.php
<files wp-config.php>
order allow,deny
deny from all
</files>
# Protéger les fichiers .htaccess et .htpasswds
<Files ~ "^.*\.([Hh][Tt][AaPp])">
order allow,deny
deny from all
satisfy all
</Files>
# Éviter le spam de commentaires
<IfModule mod_rewrite.c>
RewriteCond %{REQUEST_METHOD} POST
RewriteCond %{REQUEST_URI} .wp-comments-post\.php*
RewriteCond %{HTTP_REFERER} !.monsite.com.* [OR]
RewriteCond %{HTTP_USER_AGENT} ^$
RewriteRule (.*) ^http://%{REMOTE_ADDR}/$ [R=301,L]
</IfModule>
# Éviter que l'on découvre l'identifiant d'un auteur
# Merci à Jean-Michel Silone du groupe Facebook WP-Secure https://www.facebook.com/groups/wp.securite/
<IfModule mod_rewrite.c>
RewriteCond %{QUERY_STRING} ^author=([0-9]*)
RewriteRule .* - [F]
</IfModule>
# Désactiver le hotlinking de vos images
RewriteEngine On
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?monsite.com [NC]
RewriteRule \.(jpg|jpeg|png|gif)$ http://fakeimg.pl/400x200/?text=Pas_touche_aux_images [NC,R,L]
# Redirection vers HTTPS
RewriteCond %{SERVER_PORT} ^80$
RewriteRule ^(.*)$ https://%{SERVER_NAME}%{REQUEST_URI} [L,R]