Les redirections personnalisées d ans htacess

Les redirections personnalisées sont couramment utilisées pour rediriger les utilisateurs d’une URL à une autre, que ce soit pour des raisons de réorganisation du site, de réparation de liens brisés, ou de gestion de trafic. Voici quelques-unes des redirections personnalisées les plus courantes :

  1. Rediriger une page vers une autre page :
    • Rediriger ancienne-page vers nouvelle-page :

Copy code

Redirect 301 /ancienne-page /nouvelle-page

  1. Rediriger un dossier vers un autre dossier :
    • Rediriger ancien-dossier vers nouveau-dossier :
RedirectMatch 301 /ancien-dossier/(.*) /nouveau-dossier/$1
  1. Rediriger tout le site vers une nouvelle URL :
    • Rediriger l’ensemble du site vers https://www.nouveausite.com :
Redirect 301 / https://www.nouveausite.com
  1. Rediriger vers une page externe :
    • Rediriger exemple.com/ancienne-page vers https://www.autresite.com/nouvelle-page :
Redirect 301 /ancienne-page https://www.autresite.com/nouvelle-page
  1. Rediriger vers la page d’accueil :
    • Rediriger toute demande non trouvée (404) vers la page d’accueil :
ErrorDocument 404 /
  1. Rediriger vers une page personnalisée pour les erreurs 404 :
    • Rediriger les erreurs 404 vers page-404-personnalisee :
ErrorDocument 404 /page-404-personnalisee/
  1. Rediriger une URL avec des paramètres :
    • Rediriger exemple.com/page?parametre=valeur vers https://www.autresite.com/page/valeur :
RewriteEngine On RewriteCond %{QUERY_STRING} parametre=(.*) RewriteRule ^page$ https://www.autresite.com/page/%1? [R=301,L]
  1. Rediriger vers une page sécurisée (HTTPS) :
    • Rediriger tout le trafic HTTP vers HTTPS :
RewriteEngine On RewriteCond %{HTTPS} off RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
  1. Rediriger en fonction de l’agent utilisateur (User-Agent) :
    • Rediriger les utilisateurs mobiles vers une page mobile :
RewriteEngine On RewriteCond %{HTTP_USER_AGENT} "android|blackberry|iphone" [NC] RewriteRule ^$ /page-mobile [L,R=301]
  1. Rediriger vers une autre URL du domaine en utilisant mod_alias :
    • Rediriger /ancien-chemin vers /nouveau-chemin sans utiliser mod_rewrite :
Redirect 301 /ancien-chemin /nouveau-chemin

Lors de la création de redirections personnalisées, assurez-vous de tester chaque redirection pour vous assurer qu’elle fonctionne correctement. De plus, si vous effectuez des changements importants sur votre site, assurez-vous d’informer les moteurs de recherche en utilisant un fichier sitemap ou en utilisant Google Search Console pour aider à mettre à jour l’index des moteurs de recherche avec les nouvelles URL.

Créer un plugin fonctionnel et administrable en 1 minute grâce à Chatgpt, c’est possible !!!

Créer un plugin fonctionnel et administrable en 1 minute grâce à Chatgpt, est-ce possible ?

Pas de suspense, hé vous donne la réponse : oui ! Sans aucun bug et intégralement fonctionnel en moins d’une minute ! Dicter l’énoncé m’aura finalement pris plus de temps. De plus, comme quoi je n’y croyait pas vraiment, j’ai effectué ce test de génération de code et d’installation de plugin depuis mon téléphone Android, d’où les captures d’écrans. Il m’a fallu quelques minutes pour trouver une application pour copier le code généré, enregistrer en un fichier PHP puis l’installer directement depuis l’administration de WordPress. Pas besoin de FTP.

Ma demande transmise à Chatgpt

Crée le code pour créer un plugin WordPress qui affiche une liste de sites web, dans la partie admin, une page de gestion du plugin où l’on peut ajouter ou supprimer un lien, joindre une photo où un screenshot du site web, un titre, une description, et également possibilité de catégoriser et d’apposer des étiquettes afin de pouvoir les afficher ou trier selon notre volonté sur une page en front-end ChatGPT

Message transmis à Chatgpt, sans réfléchir à la tournure de mes phrases, aux fautes d’orthographe ou la ponctuation…

Réponse de Chatgpt

Bien sûr! Voici un exemple de code pour créer un plugin WordPress qui affiche une liste de sites web dans la partie admin, avec une page de gestion du plugin où vous pouvez ajouter ou supprimer des liens, joindre une photo ou un screenshot du site web, et fournir un titre, une description, ainsi que des catégories et des étiquettes pour trier et afficher les sites web selon votre volonté sur une page front-end :

Chatgpt réponse

Le code intégral que Chatgpt a généré en 1 fois !

phpCopy code<?php
/*
Plugin Name: Mon Plugin Sites Web
Plugin URI: http://www.example.com
Description: Plugin WordPress pour afficher une liste de sites web.
Version: 1.0
Author: Votre Nom
Author URI: http://www.example.com
License: GPL2
*/

// Crée la table personnalisée pour stocker les sites web
function wpse_create_table() {
    global $wpdb;
    $table_name = $wpdb->prefix . 'sites_web';

    $charset_collate = $wpdb->get_charset_collate();

    $sql = "CREATE TABLE $table_name (
        id mediumint(9) NOT NULL AUTO_INCREMENT,
        title varchar(255) NOT NULL,
        description text NOT NULL,
        url varchar(255) NOT NULL,
        image varchar(255),
        categories text,
        tags text,
        PRIMARY KEY  (id)
    ) $charset_collate;";

    require_once( ABSPATH . 'wp-admin/includes/upgrade.php' );
    dbDelta( $sql );
}
register_activation_hook( __FILE__, 'wpse_create_table' );

// Enregistre le menu de gestion du plugin
function wpse_add_admin_menu() {
    add_menu_page(
        'Gestion des Sites Web',
        'Sites Web',
        'manage_options',
        'sites-web',
        'wpse_render_admin_page',
        'dashicons-admin-links',
        20
    );
}
add_action( 'admin_menu', 'wpse_add_admin_menu' );

// Affiche la page de gestion du plugin
function wpse_render_admin_page() {
    ?>
    <div class="wrap">
        <h1>Gestion des Sites Web</h1>

        <h2>Ajouter un nouveau site web</h2>
        <form method="post" action="<?php echo admin_url( 'admin-post.php' ); ?>" enctype="multipart/form-data">
            <input type="hidden" name="action" value="wpse_add_site">
            <label for="title">Titre :</label>
            <input type="text" name="title" id="title" required><br>
            <label for="description">Description :</label>
            <textarea name="description" id="description" required></textarea><br>
            <label for="url">URL :</label>
            <input type="text" name="url" id="url" required><br>
            <label for="image">Image :</label>
            <input type="file" name="image" id="image"><br>
            <label for="categories">Catégories (séparées par des virgules) :</label>
            <input type="text" name="categories" id="categories"><br>
            <label for="tags">Étiquettes (séparées par des virgules) :</label>
            <input type="text" name="tags" id="tags"><br>
            <?php wp_nonce_field( 'wpse_add_site', 'wpse_add_site_nonce' ); ?>
            <input type="submit" value="Ajouter">
        </form>

        <h2>Liste des sites web</h2>
        <table class="wp-list-table widefat fixed striped">
            <thead>
                <tr>
                    <th>Titre</th>
                    <th>Description</th>
                    <th>URL</th>
                    <th>Image</th>
                    <th>Catégories</th>
                    <th>Étiquettes</th>
                    <th></th>
                </tr>
            </thead>
            <tbody>
                <?php
                global $wpdb;
                $table_name = $wpdb->prefix . 'sites_web';
                $sites = $wpdb->get_results( "SELECT * FROM $table_name" );
                foreach ( $sites as $site ) {
                    echo '<tr>';
                    echo '<td>' . esc_html( $site->title ) . '</td>';
                    echo '<td>' . esc_html( $site->description ) . '</td>';
                    echo '<td>' . esc_html( $site->url ) . '</td>';
                    echo '<td><img src="' . esc_html( $site->image ) . '" alt="" width="100"></td>';
                    echo '<td>' . esc_html( $site->categories ) . '</td>';
                    echo '<td>' . esc_html( $site->tags ) . '</td>';
                    echo '<td><a href="' . admin_url( 'admin-post.php?action=wpse_delete_site&id=' . $site->id ) . '">Supprimer</a></td>';
                    echo '</tr>';
                }
                ?>
            </tbody>
        </table>
    </div>
    <?php
}

// Traite la soumission du formulaire pour ajouter un site web
function wpse_add_site() {
    if ( ! isset( $_POST['wpse_add_site_nonce'] ) || ! wp_verify_nonce( $_POST['wpse_add_site_nonce'], 'wpse_add_site' ) ) {
        wp_die( 'Erreur de vérification du formulaire.' );
    }

    global $wpdb;
    $table_name = $wpdb->prefix . 'sites_web';

    $title = sanitize_text_field( $_POST['title'] );
    $description = sanitize_textarea_field( $_POST['description'] );
    $url = esc_url( $_POST['url'] );
    $image = '';

    if ( isset( $_FILES['image'] ) && ! empty( $_FILES['image']['tmp_name'] ) ) {
        $upload_dir = wp_upload_dir();
        $image_data = wp_handle_upload( $_FILES['image'], array( 'test_form' => false ) );

        if ( isset( $image_data['url'] ) ) {
            $image = esc_url( $image_data['url'] );
        }
    }

    $categories = sanitize_text_field( $_POST['categories'] );
    $tags = sanitize_text_field( $_POST['tags'] );

    $wpdb->insert(
        $table_name,
        array(
            'title' => $title,
            'description' => $description,
            'url' => $url,
            'image' => $image,
            'categories' => $categories,
            'tags' => $tags
        ),
        array( '%s', '%s', '%s', '%s', '%s', '%s' )
    );

    wp_redirect( admin_url( 'admin.php?page=sites-web' ) );
    exit;
}
add_action( 'admin_post_wpse_add_site', 'wpse_add_site' );

// Traite la suppression d'un site web
function wpse_delete_site() {
    if ( ! current_user_can( 'manage_options' ) ) {
        wp_die( 'Accès refusé.' );
    }

    if ( ! isset( $_GET['id'] ) ) {
        wp_die( 'ID de site web manquant.' );
    }

    $site_id = intval( $_GET['id'] );

    global $wpdb;
    $table_name = $wpdb->prefix . 'sites_web';

    $wpdb->delete( $table_name, array( 'id' => $site_id ), array( '%d' ) );

    wp_redirect( admin_url( 'admin.php?page=sites-web' ) );
    exit;
}
add_action( 'admin_post_wpse_delete_site', 'wpse_delete_site' );

// Affiche la liste des sites web en front-end
function wpse_render_frontend() {
    ob_start();
    ?>
    <div class="site-list">
        <?php
        global $wpdb;
        $table_name = $wpdb->prefix . 'sites_web';
        $sites = $wpdb->get_results( "SELECT * FROM $table_name" );
        foreach ( $sites as $site ) {
            ?>
            <div class="site">
                <h3><?php echo esc_html( $site->title ); ?></h3>
                <p><?php echo esc_html( $site->description ); ?></p>
                <a href="<?php echo esc_url( $site->url ); ?>">Visiter le site</a>
                <?php if ( ! empty( $site->image ) ) : ?>
                    <img src="<?php echo esc_url( $site->image ); ?>" alt="<?php echo esc_attr( $site->title ); ?>" width="200">
                <?php endif; ?>
                <div class="categories"><?php echo esc_html( $site->categories ); ?></div>
                <div class="tags"><?php echo esc_html( $site->tags ); ?></div>
            </div>
            <?php
        }
        ?>
    </div>
    <?php
    return ob_get_clean();
}
add_shortcode( 'site_list', 'wpse_render_frontend' );

Ce code crée un plugin WordPress qui ajoute une page de gestion dans l’administration où vous pouvez ajouter et supprimer des sites web avec leurs informations (titre, description, URL, image, catégories et étiquettes). Il affiche également une liste des sites web en front-end à l’aide d’un shortcode [site_list].

Assurez-vous de créer un fichier dans le dossier /wp-content/plugins/ avec le nom mon-plugin-sites-web.php et d’y coller le code ci-dessus. Ensuite, activez le plugin depuis le tableau de bord de votre site WordPress.

Free Research Preview. ChatGPT may produce inaccurate information about people, places, or facts. ChatGPT May 24 Version

Fin de la réponse de Chatgpt et là, personne n’y crois

Vous avez le rendu de son travail juste en dessous, le site web de ma compagne y est affiché “Aux 4 pattes”. Chatgpt m’a également ajouté un lien d’administration dans le backend où l’on peut ajouter ou supprimer les liens.

En l’état, ce plugin ne casse pas trois pattes à un canard. J’ai oublié de mentionner “modifier”, donc la fonction pour modifier un site déjà soumis n’est pas encore implémenté. La mise en page est à revoir des deux côtés. Aucune gestion du seo etc..

Il a même créé dans le code, ka requête pour ajouter une nouvelle table dans la base donnée alors même que je n’avais pas effectué cette demande !

Quoi qu’il en soit, cela reste une prouesse et un formidable outils pour les développeurs en herbe pour apprendre et débuter dans le codage de plugin WordPress par exemple.

J’avais déjà vu des vidéos sur YouTube mais malgré tout, ils avaient des petits bugs à gérer, des demandes de modifications supplémentaires pour que le plugin fonctionne. Or là, je n’ai strictement rien demandé de plus n’y fait aucune modification ! Un simple copier-coller et hop c’était fini ! Je suis bluffé, époustouflé ! Chatgpt bravo !

COMMENT ACTIVER COPILOT SUR VOTRE PC SOUS WINDOWS 11

Pour commencer, il vous faut donc rejoindre le programme Insider de Windows 11, puis installer la build adéquate pour profiter de Copilot. Voici comment vous y prendre :

  1. Ouvrez les Paramètres de Windows 11 puis rendez-vous dans la section Windows Update
  2. Cliquez sur Programme Windows Insider puis sur le bouton Prise en main
  3. Si ce n’est pas déjà fait, connectez-vous à votre compte Microsoft
  4. Sélectionnez le canal Preview puis cliquez sur Confirmer
  5. Redémarrez votre PC
windows update insider