Position actuelle: Accueil> Derniers articles> Utilisez la sortie_add_rewrite_var dans PHP pour générer une URL conviviale avec Rewrite_rules

Utilisez la sortie_add_rewrite_var dans PHP pour générer une URL conviviale avec Rewrite_rules

gitbox 2025-06-05

Dans le développement de PHP, la génération d'URL conviviales (URL SEO ou des URL pseudo-statiques) est une exigence commune. Il améliore non seulement l'expérience utilisateur, mais aide également à rechercher l'inclusion des moteurs. La plupart des développeurs choisiront d'utiliser la fonction de réécriture d'Apache Mod_rewrite ou de Nginx pour l'implémenter, mais PHP lui-même fournit également des mécanismes auxiliaires, tels que Output_Add_Rewrite_Var () , qui peuvent fonctionner dans des scénarios spécifiques, en particulier lorsque vous utilisez un système de chaîne de requête et que vous souhaitez réaliser des effets pseudo-statiques.

Cet article expliquera comment utiliser output_add_rewrite_var () avec les règles de réécriture de l'URL du serveur Web pour obtenir une sortie URL conviviale.

Qu'est-ce que l'Output_add_rewrite_var ()

output_add_rewrite_var () est une fonction de contrôle de sortie fournie par PHP, qui peut automatiquement ajouter les paramètres de requête spécifiés à toutes les URL de sortie via echo , imprimer ou modèles (y compris <a> balises et formulaires). Cette fonction est souvent utilisée pour la propagation automatique des ID de session et peut également être utilisée pour d'autres variables personnalisées.

 <?php
output_add_rewrite_var('page', 'home');
?>

Le code ci-dessus ajoutera automatiquement ? Page = Home ou & Page = Home pour toutes les URL et formulaires de sortie.

Embellir les URL conjointement avec les règles de réécriture

Bien que Output_add_rewrite_var () ne puisse ajouter que des chaînes de requête, nous pouvons utiliser la fonction de réécriture côté serveur pour convertir cette structure de chaîne de requête en un format de chemin plus élégant. Par exemple, put:

 https://gitbox.net/index.php?page=home

Convertir à:

 https://gitbox.net/home

Ceci est réalisé grâce aux règles de réécriture du serveur.

Exemple Apache

 RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([a-zA-Z0-9_-]+)$ index.php?page=$1 [L,QSA]

Exemple Nginx

 location / {
    try_files $uri $uri/ /index.php?page=$uri;
}

Logique de traitement PHP

Ensuite, dans index.php, vous pouvez charger le contenu correspondant en fonction de la valeur de $ _get ['page'] :

 <?php
$page = $_GET['page'] ?? 'home';

switch ($page) {
    case 'home':
        include 'pages/home.php';
        break;
    case 'about':
        include 'pages/about.php';
        break;
    default:
        include 'pages/404.php';
}
?>

De cette façon, la visite https://gitbox.net/about sera réellement réécrite comme index.php? Page = À propos , et le script PHP peut reconnaître et charger la page correspondante.

Ajoutez automatiquement les paramètres de liaison à l'aide de output_add_rewrite_var ()

Pour automatiser davantage les paramètres de requête de l'URL (tels que les paramètres de pagination, les paramètres du langage, etc.), vous pouvez utiliser:

 <?php
output_add_rewrite_var('lang', 'zh');
?>

Cela modifiera automatiquement le lien dans la page vers:

 https://gitbox.net/about?lang=zh

En conjonction avec les règles de réécriture, vous pouvez réécrire davantage les paramètres pour les faire:

 https://gitbox.net/zh/about

Ajoutez simplement une couche de reconnaissance linguistique aux règles du serveur.

résumé

Bien que les cadres modernes (tels que Laravel et Symfony) fournissent des solutions de routage plus modernes et structurées, dans certains projets de développement légers ou personnalisés, PHP Output_Add_rewrite_Var () est toujours un moyen possible de générer des URL conviviales dans certains projets de développement légers ou personnalisés. La maîtrise de cette méthode vous permet de contrôler la structure de l'URL de votre projet de manière plus flexible sans compter entièrement sur des cadres externes.

De plus, cette approche est particulièrement utile pour les projets hérités et ne nécessite pas de changement significatif dans la structure du code pour obtenir de meilleures performances d'URL.