Vous êtes ici : Accueil » Articles » De belles URLs avec Free sans trop de problèmes

De belles URLs avec Free sans trop de problèmes

free

On sait qu’avec l’hébergeur gratuit Free, il est impossible d’utiliser le mod_rewrite d’Apache et difficile de réécrire les URLs de son site/blog. Donc pas de Rewrite Rule dans le .htaccess. J’avais testé la redirection de la page d’erreur 404, mais cela s’avère ingérable au niveau du panel d’admin ainsi que les flux RSS sans parler des headers HTTP. J’ai dû me résoudre à des permaliens du type : /index.php/%year%/%month%/%postname%/. Toutefois, il est possible d’éviter le index.php dans l’URL et le remplacer par autre chose de plus compréhensible pour le client comme blog ou article et ce, grâce au Multiviews, un mod qui autorise l’absence d’extension après le fichier dans l’URL.

On veut une URL du type : http://exemple.free.fr/blog/nom-de-larticle/

Création du fichier principal

Vous créez premièrement un fichier blog.php que vous uploadez sur votre serveur via votre FTP favori.

Vous y insérez le code suivant:

1
<?php  include('index.php'); ?>

Cela « inclut » le fichier index.php dans blog.php. Les lignes de commande situées dans index.php seront exécutées à l’appel de la page blog.php.

Empêcher la réécriture du .htaccess

Avant tout, il faut empêcher WordPress de réécrire le fichier .htaccess avec des règles de réécriture. Cela pourrait créer un conflit avec Free. Ouvrez le fichier misc.php dans /wp-admin/includes/ et au niveau de la 67ème ligne vous trouverez la fonction suivante :

1
2
function insert_with_markers( $filename, $marker, $insertion ) {
 ...

C’est cette fonction qui réécrit les fichier .htaccess automatiquement. Pour l’empêcher d’agir, on ajoute return true; juste après l’accolade :

1
2
function insert_with_markers( $filename, $marker, $insertion ) {
 return true;

Réécrire les permaliens

Dans votre panneau d’administration, allez à Réglages > Permaliens et entrez les marqueurs dans le champ "Structure personnalisée". Par   exemple :

1
/blog/%postname%/

Modifier l’URL par défaut du flux RSS

Vous aurez un problème avec le flux RSS car il n’est plus accessible avec /feed/ mais avec /blog/feed/. Il faut changer l’URL par défaut vers le flux. Pour éviter d’utiliser un .htaccess, il faut ajouter une fonction dans le fichier functions.php de votre thème. Le code  est expliqué sur http://justintadlock.com/ (en anglais).

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
 
add_filter('feed_link','custom_feed_link', 1, 2);
 
 function custom_feed_link($output, $feed) {
 
 $feed_url = 'http://exemple.free.fr/blog/feed/';
 
 $feed_array = array('rss' => $feed_url, 'rss2' => $feed_url, 'atom' => $feed_url, 'rdf' => $feed_url, 'comments_rss2' => '');
 $feed_array[$feed] = $feed_url;
 $output = $feed_array[$feed];
 
 return $output;
 }
 
?>

Il suffit de remplacer http://exemple.free.fr/blog/feed/ par l’adresse du flux de votre site web.

Et c’est tout. Normalement, votre blog est fonctionnel et possède des URLs plutôt sympa.

Tags : , , ,

Les commentaires sont fermés !