2017-08-07 2 views
0

Je travaille sur le site Web html. Où j'ai plus de 30 pages. Donc je cherche une solution où je dois utiliser le menu dans une page et puis appeler ce menu sur toutes les autres pages, ainsi la prochaine fois que je dois faire quelques changements, je changerai seulement dans un dossier. Par google, je peux savoir que je peux convertir mon extension de html en php puis utiliser <?php include 'menu.php' ?>. Mais je ne veux pas que Tyo change l'extension ici.problème d'injection côté serveur (SSI)

Donc une autre solution sort qui est Server Side Include (SSI).

Mais rien ne semble avoir changé ici. Disons que mon div menu:

<div class="menu"> 
    <div class="page-logo"> 
     <a href="dashboard.html"> 
      <img src="assets/img/logo.png" alt="logo"/> 
     </a> 
    </div> 
</div> 

Je copié le menu du code Div dans un fichier séparé et l'enregistrer comme menu.html utilise alors SSI comme celui-ci

<div class="menu"> 
    <!-- #include virtual="/menu.html" --> 
</div> 

MAIS logo ne appers sur ma page. Je me demande comment cela fonctionne sur les gens d'autres, parce que pour autant que je sache La commande SSI est dans les commentaires tag <!-- COMMENTS -->

Une idée, Qu'est-ce que je fais mal au-dessus OU comment puis-je utiliser le même menu sur toutes les pages en gardant l'extension html ?

Je l'ai utilisé thi SMY .htaccess fichier

AddType text/html .shtml 
AddHandler server-parsed .shtml 
Options Indexes FollowSymLinks Includes 
AddHandler server-parsed .html .htm 

Répondre

1

Pour toute forme de programmation côté serveur, vous devez configurer le serveur pour rechercher le code côté serveur dans votre fichier au lieu de simplement passer directement à la client.

Comment cela dépend du serveur spécifique que vous utilisez. Si vous utilisez HTTPD Apache, vous pouvez souvent utiliser .htaccess. Ceci est not recommended:

Vous devriez éviter d'utiliser les fichiers .htaccess complètement si vous avez accès à httpd fichier de configuration du serveur principal. L'utilisation de fichiers .htaccess ralentit votre serveur http Apache. Toute directive que vous pouvez inclure dans un fichier .htaccess est mieux définie dans un bloc Directory, car elle aura le même effet avec de meilleures performances.

Il est très fréquent de constater que les serveurs sont configurés pour rechercher PHP dans .php fichiers et SSI dans .shtml fichiers.

Vous pouvez les configurer pour rechercher d'autres types de fichiers et commencer à chercher s'ils ne le sont pas déjà.

Les spécificités de cette procédure dépendent du serveur Web que vous utilisez. Pour Apache, par exemple, the manual has this guide for SSI

Pour permettre SSI sur votre serveur, vous devez avoir la directive suivante soit dans votre fichier httpd.conf, ou dans un fichier .htaccess:

Options +Includes 

Cette indique à Apache que vous souhaitez autoriser l'analyse des fichiers pour les directives SSI .Notez que la plupart des configurations contiennent plusieurs options directives qui peuvent se substituer mutuellement. Vous aurez probablement besoin de pour appliquer les options au répertoire spécifique dans lequel vous voulez que SSI soit activé afin de s'assurer qu'il est évalué en dernier.

Aucun fichier n'est analysé pour les directives SSI. Vous devez dire Apache quels fichiers doivent être analysés. Il y a deux façons de faire ça. Vous pouvez dire Apache pour analyser un fichier avec un fichier particulier extension, tels que Shtml, les directives suivantes:

AddType text/html .shtml 
AddOutputFilter INCLUDES .shtml 

Un inconvénient de cette approche est que si vous vouliez ajouter SSI directives à un page existante, vous devez changer le nom de cette page, et tous les liens vers cette page, afin de lui donner une extension .shtml , de sorte que ces directives seraient exécutées.

L'autre méthode consiste à utiliser la directive XBitHack:

XBitHack on 

XBitHack dit Apache pour analyser les fichiers des directives SSI si elles ont le bit exécuter. Ainsi, pour ajouter des directives SSI à une page existante, plutôt que d'avoir à changer le nom du fichier, vous devrez juste rendre le fichier exécutable en utilisant chmod.

chmod +x pagename.html 

Un bref commentaire sur ce qu'il ne faut pas faire. Vous verrez parfois des gens vous recommandant de dire à Apache d'analyser tous les fichiers .html pour SSI, afin que vous n'ayez pas à vous préoccuper des noms de fichier .shtml. Ces gens n'ont peut-être pas entendu parler de XBitHack. La chose à garder à l'esprit est que, ce faisant, vous exigez qu'Apache lit tous les fichiers qu'il envoie aux clients, même s'ils ne contiennent pas de directives SSI ( ). Cela peut ralentir un peu les choses, et n'est pas une bonne idée.

... et the PHP manual has this guide:

# Make all PHP code look like HTML 
AddType application/x-httpd-php .htm .html 

pour autant que je sais que la commande SSI est dans la balise commentaires <!-- COMMENTS -->

syntaxe SSI est conçue pour m irriter la syntaxe de commentaire HTML de sorte que si le serveur ne parvient pas à analyser le fichier pour SSI, la position de repli sera d'échouer silencieusement au lieu de casser le reste du contenu de la page.

L'analyseur SSI ne le traitera pas comme un commentaire.