2016-03-18 5 views
0

In Ordnung, also die einzige Möglichkeit, wie ich die Links ändere, um die Dateierweiterungen nicht anzuzeigen;Silly 404 Seitenverbrauch?

diese yourwebsite.com/customlink.php-yourwebsite.com/customlink

entweder einen Ordner namens customlink und schob eine Indexdatei in dort zu schaffen. Oder eine 404-Seite erstellen, die um die URL herumschnüffelt und den String hinter dem letzten / schnappt und alles tut, was den richtigen Inhalt zeigt.

Meine Frage ist, ob diese Art der Lösung des Problems gerade idiotisch ist oder nicht? Ich mache das, weil es meiner Meinung nach platzsparend ist, lassen Sie mich erklären: Jede Seite, die eine customlink benötigt, ist die gleiche mit einigen Bits und Inhalt von anderen Orten, also statt X Menge von Ordnern und Indexdateien zu erstellen, die ein enthält Hauptdatei, ich habe nur eine 404-Datei, die damit umgehen kann.

ich im Voraus entschuldigen, wenn dies wirklich dumm ist

+1

Ich glaube nicht, dass dies überhaupt richtig getaggt ist. –

+0

Der richtige Weg, dies zu tun, wäre entweder MultiViews ihre Arbeit machen (kann Nebenwirkungen haben), oder verwenden Sie mod_rewrite. Oder, in Apache 2.4, "FallbackResource" (http://httpd.apache.org/docs/2.4/en/mod/mod_dir.html#fallbackresource). Wenn Sie das 404-Fehlerdokument falsch verwenden, wird Ihr Fehlerprotokoll wahrscheinlich mit 404-Nachrichten überflutet. – CBroe

+1

Mögliches Duplikat von [Referenz: mod \ _rewrite, URL-Umschreibung und "hübsche Links" erklärt] (http://stackoverflow.com/questions/20563772/reference-mod-rewrite-url-rewriting-and-pretty-links-explained)) – chris85

Antwort

0

Ein gemeinsames Konzept für die Strecke ist alle HTTP-Anfragen an einen einzigen index.php mit mod_rewrite in einem .htaccess.

Anschließend gibt die index.php basierend auf der angeforderten Ressource die entsprechende Datei aus, unabhängig davon, ob sie aus einer Datenbank generiert oder in einem anderen Ordner verschachtelt ist.

Es ist wahrscheinlich keine gute Idee, eine 404-Seite (eine Fehlerseite) für etwas anderes als "Datei nicht gefunden" -Instanzen zu verwenden.

2

Da Sie nicht erwähnen, auf welchem ​​Server Ihre Seiten laufen (Apache, IIS, ...?), Nehme ich einfach Apache an.

eine .htaccess-Datei in das Stammverzeichnis Ihrer Website mit folgendem Inhalt Put:

RewriteEngine on 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME}\.php -f 
RewriteRule ^(.*)$ $1.php 

Es wird intern alles ohne eine Erweiterung in der entsprechenden PHP-Datei neu zu schreiben, sofern:

  • die Anfrage ist kein gültiges Verzeichnis
  • eine Datei mit einer pHP-Erweiterung in der Tat vorhanden ist