it-swarm.com.de

Ist es eine schlechte Praxis, PHP Direktiven in HTML-Dateien abzulegen und vom Server als PHP interpretieren zu lassen?

Ich verwende seit Ende 2014 die Website meines Unternehmens, die auf jeder Seite die gleichen Kopf-, Fuß- und linken Spalten verwendet. Aus diesem Grund habe ich den Apache-Server so eingerichtet, dass HTML-Dokumente so interpretiert werden, als wären sie PHP. Ich benutze include(), um header.html, footer.html und leftcolumn.html in jede Seite zu bringen, mit einigen anderen kleineren variablen Austauschen usw.

Jetzt arbeite ich an meiner eigenen Website und wollte den gleichen Schritt tun, sah aber, dass bei anderen Fragen hier gesagt wurde, dass HTML nicht als PHP (in PHP gelesen werden soll. Formularerstellungsantworten, die ich erfolgreich implementiert habe, ohne zu erzwingen).

Frage: Ist es üblich, einen Server so zu konfigurieren, dass HTML-Dateien als PHP analysiert werden? Gibt es mögliche SEO-Auswirkungen dafür? Sollte ich auf Dateierweiterungen verzichten und in eine Ordnerstruktur wechseln? (.com/players/ anstelle von .com/players.html)

Da es auf ähnliche Fragen keine eindeutige Antwort zu geben scheint, kann dies als eine Art Diskussionsfrage angesehen werden. In diesem Fall werde ich HTML auf PHP zwingen, da dies für mich die einfachste Option zu sein scheint, und erwägen, eine neue Ordnerstruktur zu erstellen.

5
Kyle Postlewait

Ist es eine schlechte Praxis, HTML zu zwingen, als PHP gelesen zu werden? Gibt es mögliche SEO-Auswirkungen dafür?

Suchmaschinen wissen und kümmern sich nicht darum, wie Ihre Seiten generiert werden. Sie sehen nur die Ausgabe, die die Anforderungs-URL bereitstellt (mit anderen Worten die Ausgabe Ihrer PHP -Datei).

Sollte ich auf Dateierweiterungen verzichten und in eine Ordnerstruktur wechseln? (.com/players/anstelle von .com/players.html)

Coole URIs ändern sich nicht. Es spielt keine Rolle, ob Sie eine Dateierweiterung haben oder nicht, und wenn Sie eine verwenden, ändert sich nichts, wenn Sie die Technologie ändern. Wählen Sie also aus, was Ihrer Meinung nach am einfachsten zu handhaben und bleiben Sie dabei.

8
John Conde

Wenn alle Ihre .html -Dateien PHP-Code enthalten und daher vom PHPanalysiert werden müssen Trotzdem gibt es keinen Unterschied zwischen dem Parsen Ihrer .html -Dateien für PHP und dem Ändern Ihrer Dateierweiterungen in .php. Aus Entwicklersicht ist eine .php -Datei offensichtlich eine PHP -Datei, und einige Editoren behandeln dies möglicherweise anders (Hervorhebung der Syntax, Vervollständigung des Codes usw.).

Wenn Sie jedoch eine neue Site entwickeln oder diese leicht ändern können, müssen keine .html -Dateien für PHP analysiert werden . Halten Sie sich einfach an die Dateierweiterung .php. Wenn dieser Code auch auf verschiedenen Servern bereitgestellt werden soll, behalten Sie die Dateierweiterung .php bei. Einige gemeinsam genutzte Server erlauben nicht, dass .html -Dateien von PHP analysiert werden, und der Versuch, die richtige AddType/AddHandler -Direktive für den Server zu erzeugen, kann nicht trivial sein .

Sollte ich auf Dateierweiterungen verzichten und in eine Ordnerstruktur wechseln? (.com/players/ anstelle von .com/players.html)

Beachten Sie, dass es sich bei dem Verweis auf .php Dateierweiterungen buchstäblich nur um die zugrunde liegende Datei handelt Erweiterung der physischen Datei, dies hat nicht unbedingt etwas mit der URL zu tun, die der Benutzer sieht. Die physische Datei im Dateisystem sollte immer eine Dateierweiterung haben.

Wenn Sie mit ".com/players/" beabsichtigen, den DirectoryIndex aus dem entsprechenden Verzeichnis zu bedienen, z. .com/players/index.php, dann würde ich diesen Ansatz vermeiden, da Sie am Ende 100s/1000s "unterschiedlicher" index.php -Dateien haben - was verwirrend sein kann. URLs, die auf eine einzelne Seite zugreifen, sollten nicht mit einem Schrägstrich (IMO) enden.

4
MrWhite

Nein, tun Sie dies nicht in einer HTML-Datei . Ich bin fest davon überzeugt, ein bisschen mehr Arbeit zu investieren, um Ihren Code sauber zu halten. CSS geht in eine .css -Datei, HTML in eine .html -Datei und PHP geht in eine .php -Datei *. Ihre aktuelle Trennung von Dateien ist eine gute Sache, es ist der "im doing PHP in html files" -Teil, den ich nicht empfehle.
* Natürlich ist dies nicht zu 100% zutreffend, aber Sie sollten es versuchen.

Auf diese Weise erstellen Sie (zumindest in einem grundlegenden Ausmaß) und andere Personen (auf lange Sicht) ein Projekt, das einfacher zu warten ist, da Sie sich an Best Practices halten. Es ist zwar möglich, einen Server für die Verarbeitung von PHP in einer .html -Datei einzurichten, dies wird jedoch nicht allgemein empfohlen.

Ihr Code sollte wartbar sein . Ich würde nicht nach PHP in HTML-Dateien suchen (oder erwarten). Wenn Sie Ihren Code ordentlich halten , wird dies Ihnen auf lange Sicht helfen . Indem Sie alles getrennt halten, halten Sie sich automatisch an bestimmte Codierungsstandards, was Ihnen wiederum dabei hilft, Ihre Fähigkeiten zu verbessern.
Wenn Sie in Google nach "html in php" suchen, erhalten Sie zahlreiche Antworten/Antworten, die besagen, dass Sie PHP in einer .html -Datei nicht finden können. Sie sind falsch, aber es zeigt, wie ungewöhnlich es ist.

Bezüglich Ihrer URL: Ihre URLs sollten sich nicht ändern, wenn Sie die Technologie ändern. Ihre URLs sollten keine Dateierweiterung haben. Es gibt jedoch eine schnelle Lösung: Lassen Sie den .htaccess die URL für Sie intern umschreiben. Ich habe Produktseiten, auf denen ich .htm in der URL verwende, damit ich sie leicht in meinen .htaccess aufnehmen kann, aber sie sind überhaupt keine HTML-Dateien :)


Ähnliche Antwort wie meine https://stackoverflow.com/a/11312349/2519416 .
Dies könnte auch eine nette Lektüre sein: "Mische nicht PHP und HTML!"

4
Martijn

Durch PHP-Rendering wird Ihr Webserver etwas langsamer reagieren

Ein wesentlicher technischer Nachteil beim Parsen von HTML als PHP wäre die zusätzliche Zeit und die Serverressourcen, die die Verarbeitung verbraucht. Wenn Ihr HTML-Code keine PHP Anweisungen enthält, ist dies wahrscheinlich nicht wahrnehmbar. Sie können einige Mikrosekunden sparen, indem Sie das Parsing von PHP deaktivieren.

Sie können dies messen, indem Sie Ihre Ladezeit mit PHP mit einem Tool wie Pingdom ein- oder ausschalten. (Ignorieren Sie ihre Ratschläge zu einwöchigen Caches.) Ich glaube, Sie werden keinen großen Unterschied feststellen.

Es gibt wahrscheinlich viel effektivere Möglichkeiten, um Ihre Website zu beschleunigen. Wenn Sie beispielsweise bei Google PageSpeed ​​Insights nicht in den 90er Jahren punkten, verwenden Sie Ihre Energie darauf, Ihre Punktzahl zuerst dort zu verbessern (insbesondere, wenn Sie sich für SEO interessieren).

Hochvolumige Sites

Der Ratschlag, die PHP Strafe zu ignorieren, gilt für Ihre typische Website. Wenn Sie eine Lautstärke im Bereich von mehreren Seitenaufrufen pro Sekunde erhalten, schalten Sie PHP auf jeden Fall aus, wenn Sie dies nicht benötigen, um die Belastung Ihres Webservers zu verringern.

Sicherheit

Die Verarbeitung von PHP auf Ihrer Website eröffnet einen möglichen Angriffspunkt für Ihre Website. Dies ist ein bisschen paranoid, aber es ist ein triftiger Grund, die Verarbeitung von PHP abzubrechen, wenn Sie sie einfach nicht verwenden.

3
Tim Grant

Wie verschiedene Antworten angedeutet haben, sollten Sie zwischen RLs und physische Dateinamen unterscheiden. Die einfachste Zuordnung von URLs erfolgt direkt zum Dateisystem - http://example.com/foo.html zeigt auf eine Datei mit dem Namen foo.html in einem Verzeichnis - aber sobald Sie über URLs als SEO nachdenken (oder, in einer idealen Welt, UX) ), dann werden Sie wahrscheinlich trotzdem ein komplexeres Mapping verwenden.

Die Wahl von physischer Dateiname hat dann nichts mit SEO zu tun, nur mit Leistung und Sicherheit. Beispielsweise könnten Sie http://example.com/foo.html auf scripts/generate_page.php?page=foo und http://example.com/bar.html auf static_pages/bar.html abbilden.

Wie andere gesagt haben, gibt es für Seiten, die mit PHP absolut nichts zu tun haben, einen Leistungsvorteil (und einen potenziellen Sicherheitsvorteil), wenn sie überhaupt nicht durch den PHP -Prozess geleitet werden. Das Reservieren einer physischen Dateierweiterung für solche Seiten ist der einfachste Weg, dies zu tun. Angesichts der obigen Zuordnungen ist es einfach, Apache anzuweisen, bar.html direkt zu liefern, aber generate_page.php an PHPweiterzuleiten. _ Prozessor.

Für Seiten, die do PHP verwenden, bietet es den Vorteil, gängigen Konventionen zu folgen, da Sie weniger Zeit damit verbringen, Tools zu konfigurieren, um zu erkennen, welche Dateien PHP sind und welche nicht. Wie bei jeder Konvention wird es auch in Zukunft für andere einfacher sein, mit Ihrem Projekt zu arbeiten, wenn die Dinge dort sind, wo sie es erwarten.

2
IMSoP

Die Praxis, HTML undPHPim selben Dokument zu mischen, hat vor langer Zeit begonnen, und obwohl einige beliebte Open-Source-Projekte wieWordPressdies immer noch tun, beginnt sie sich zu entwickeln veraltete Praxis und ich würde es sogar als schlechte Praxis aus der Perspektive der Codierung betrachten.

Offensichtlich hat dies keine Auswirkungen auf die Suchmaschinenoptimierung, da sich Google nur um die Ausgabe kümmert. Dies hat jedoch einen großen Einfluss darauf, wie Sie Ihren Code und Ihr Projekt organisieren.

Die meisten der heute gängigen Frameworks verwenden das MVC-Entwurfsmuster. Model View Controller. Bei diesem Entwurfsmuster geht es darum, die Logik und die Ansichten/Ausgaben in separate Dateien zu unterteilen, damit der Code einfacher zu warten ist.

Im Gegensatz zu Ihrem aktuellen Muster, bei dem Sie HTML und PHP in einer einzigen Datei zusammenfassen, werden Sie einen objektorientierteren Ansatz mit klaren, leicht zu pflegenden Klassen verfolgen.

Ein zusätzlicher Vorteil ist, dass Ihr Front-End-Programmierer seine Arbeit leichter erledigen kann, da er die Back-End-Logik nicht in denselben Dateien berücksichtigen muss, an denen er arbeitet.

0
Marcus Lind