Das Folgende kann als übertrieben angesehen werden, aber ich nehme es gerne noch einen Schritt weiter, indem ich einen nachgestellten Schrägstrich hinzufüge. Wenn der Schrägstrich fehlt, fühlt es sich an, als ob etwas fehlt… unvollständig? Nur eine persönliche Macke, schätze ich.
Diese Regel wird site.com/path/ abgleichen und prüfen, ob site.com/path.php existiert. Wenn die Datei existiert, wird die Umschreibung fortgesetzt.
Das mag ziemlich anfängerhaft erscheinen, aber wenn Sie einen Schrägstrich nach http://example.com/about möchten, könnten Sie genauso gut http://example.com/about/index.html verwenden, was viel einfacher ist. Aber ich schätze, Sie haben eine spezielle Situation, die Ihren .htaccess-Ansatz ermöglicht =]
Dieser scheint etwas einfacher zu sein RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME}.php -f RewriteRule ^(.*)$ $1.php
mod rewrite funktioniert nur auf Apache-Servern. Bevor Sie es versuchen, stellen Sie bitte sicher, dass Sie auf einem Apache-Server arbeiten und das Modul/die Erweiterung mod rewrite aktiviert ist.
Ich kann keine Änderung an den URLs meiner Website sehen. Wie kann ich das ändern? Wenn ich besuche, finde ich jedes Mal die .html-Erweiterung. Bitte geben Sie mir eine einfache Lösung dafür… Ich warte auf Expertenantwort…. Danke
Sie haben nicht erwähnt, wie wir diesen Code anwenden sollen! Dafür werde ich anleiten… Wir erstellen eine Datei mit dem Namen (.htaccess) und fügen dann diesen Code ein.
Hallo allerseits zum Entfernen von .html Nachdem ich viele verschiedene Wege ausprobiert habe, hat dies für mich funktioniert. im .htaccess-Stammverzeichnis
RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^([^.]+)$ $.html [L]
Eine einfache Sache: Diese Regel wird in eine Apache Server .htaccess-Datei eingefügt. Wenn Sie diese Datei nicht haben, müssen Sie sie erstellen. Und dies erfordert, dass Ihr Hoster das Rewrite-Modul aktiviert hat.
Hallo! Ich habe eine Frage zur URL-Rewrite. Ich verwende eine dynamische PHP-Datei, um meine Beiträge wie üblich zu laden, und verwende die Rewrite-Funktion in der Form: mydomain.com/id_titel-des-beitrags, wie Sie sich vorstellen können, ist die tatsächliche URL so etwas wie mydomain.com/file.php?id=XX, und ich suche in meiner Datenbank nach dem Beitrag mit id=XX.
In diesem Fall ist das Einzige, was in der URL wirklich zählt, der "id"-Teil. Sie könnten mydomain.com/id_anderer-dummer-titel-des-beitrags eingeben, und Sie gelangen zum selben Beitrag.
Aber ich habe gesehen, dass Ihre URLs, wie auf Ihrer Website, die Form css-tricks.com/category/title-of-the-post haben…. Sie verwenden keine ID, daher ist das Einzige, was mir gerade einfällt, dass Ihre DB-Abfrage nach dem Beitrag sucht, bei dem das Feld title=titel des Beitrags ist.
Habe ich Recht oder rede ich Unsinn? Ich kann diese Abfrage auch erstellen, aber ich dachte, dass die Suche nach nur einer ID für die Datenbank viel schneller ist.
All dies unter der Annahme, dass Sie auch eine dynamische Datei verwenden, die Ihre Beiträge lädt, und jeder einzelne keine unabhängige HTML-Datei ist.
Ich würde mich sehr freuen, wenn Sie mir hierzu etwas Licht geben könnten. Vielen Dank! (Ich mag Ihre Website wirklich ^^). Grüße aus Peru =]
Dyllons Methode hat bei mir funktioniert. Danke dafür, ich habe mich umgesehen und keine andere Methode, die ich gefunden habe, hat bei mir funktioniert.
Hallo Chris und alle. Mein erster Beitrag hier. Vielen Dank für all die tollen Tipps! Ich möchte meine Lieblingsversion des Skripts teilen. Es fügt keinen nachgestellten Schrägstrich hinzu, es sei denn, Sie besuchen eine Indexdatei. Denken Sie daran, die ".php" aus Ihren href-Links zu entfernen.
RewriteEngine On RewriteCond %{SCRIPT_FILENAME} !-d RewriteRule ^([^\.]+)$ $1.php [NC,L]
Eine Frage. Ich benutze den Trick und er funktioniert perfekt mit Dateien im Hauptverzeichnis RewriteRule ^about$ about.php [L] Mein Problem sind Dateien in Unterverzeichnissen RewriteRule ^/path/about$ /path/about.php [L] Kann mir jemand helfen, den Trick anzuwenden?
Sofern Sie keinen einzelnen Zugriffspunkt verwenden, benötigen Sie wahrscheinlich eine .htaccess-Datei in jedem Verzeichnis, um die Rewrite-Bedingungen für dieses Verzeichnis anzugeben.
Ich wollte nur sagen, dass der Kommentar "Denken Sie daran, die ".php" aus Ihren href-Links zu entfernen." der magische Sonnenstrahl war, der dies für mich zum Laufen gebracht hat! Ich hatte das anfangs nicht getan, aber jetzt funktioniert es wunderbar!
Dieser ursprüngliche Vorschlag funktioniert gut, bedeutet aber, dass Sie jede Seite auflisten müssen, um deren Erweiterung zu entfernen, was ziemlich mühsam werden kann, daher habe ich den von Doug vorgeschlagenen ausprobiert, der funktioniert und bedeutet, dass er für die gesamte Website gelten kann, anstatt jede Seite anzugeben. Der von Boris vorgeschlagene funktioniert auch und hat eine Codezeile weniger, also verwende ich diesen.
Die Frage ist also: Gibt es eine Möglichkeit, diesen sitewide Code mit einem 301 zu kombinieren, um alle Anfragen automatisch auf ihre extensionless URL umzuleiten???
P.S. Wirklich großartige Seite im Allgemeinen und liebe die htaccess-Tipps.
@Richard Ellis: Wenn die Erweiterungen Ihrer Website etwas anderes als ".php" sind, müssen Sie die ".php" in den von Ihnen kopierten Code in ".html" ändern.
Entschuldigung, mein Englisch ist zu schlecht, also benutze ich Google Translate: "Damit es funktioniert, müssen Sie sicherstellen, dass Sie im <head> Ihrer Seite das Meta-Tag <base href = "/" /> haben und dass der href auf das Stammverzeichnis Ihrer Website verweist..."
Es tut mir leid, dass ich diese schlechte Ratschläge im früheren Beitrag gegeben habe – .php von href-Links zu entfernen. Ich war jung und dumm.
Ich habe eine bessere Lösung. Ich habe beschlossen, etwas ins Detail zu gehen für diejenigen, die es brauchen. Schauen Sie sich das an und lesen Sie weiter.
# Apache Rewrite Rules
<IfModule mod_rewrite.c>
Options +FollowSymLinks
RewriteEngine On
RewriteBase /
# Add trailing slash to url
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !(\.[a-zA-Z0-9]{1,5}|/|#(.*))$
RewriteRule ^(.*)$ $1/ [R=301,L]
# Remove .php-extension from url
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^([^\.]+)/$ $1.php
# End of Apache Rewrite Rules
</IfModule>
Dinge, die Sie wissen wollen, denke ich
1. Dies ist für Websites, die keinen Front-End-Controller verwenden, bei dem alle Anfragen durch index.php geleitet werden. Wenn Sie dies benötigen, müssen Sie den dritten Block durch Ihren eigenen ersetzen.
2. Das Beispiel wird nur mit .php gezeigt. Wenn Sie es z.B. mit .html verwenden möchten, müssen Sie den dritten Block kopieren/einfügen und ".php" in Zeile (1,) 3 und 4 durch ".html" ersetzen (es sei denn, jemand hat eine gute Möglichkeit, dies zu tun?)
3. Der Inhalt von "http://example.com/something/" kann entweder von "http://example.com/something.php" oder von "http://example.com/something/index.php" geliefert werden.
4. Um auf andere Seiten zu verlinken, einfach href=”/some/thing/” oder href=”http://example.com/some/thing/”.
5. Mit .css und .js möchten Sie href=”/style.css” oder href=”/folder1/style.css”. Andernfalls, wenn Sie href=”style.css” von “http://example.com/folder2/file.php” aufrufen, sucht es nach “http://example.com/folder2/style.css”.
@Boris: Ich verwende Ihre Lösung auf meiner Website und sie funktioniert großartig für eine Ebene. Vielen Dank! Aber wie verwende ich sie für eine Website mit mehreren Ebenen? Wenn ich example.com/contact.html einrichte, leitet example.com/contact/ zu dieser Seite weiter. Aber wenn ich ein Verzeichnis namens contact/ erstelle und versuche, contact/thanks.html hinzuzufügen (ich möchte, dass example.com/contact/thanks/), dann führt das Aufrufen von example.com/contact nur zur Auflistung des contact-Verzeichnisses anstatt contact.html. Wie beheben Sie das? (Oder ist eine andere Hierarchie besser?)
Dies funktioniert sehr gut, um den nachgestellten Schrägstrich wieder einzufügen, aber was ist, wenn Sie Variablen in Ihre URL einfügen möchten? Wenn ich zum Beispiel wanted example.com/something/variable_for_something_template, wobei something eigentlich „something.php“ ist und variable_for_something_template ein Wert ist, nach dem das something.php-Template sucht?
Und bekam auch einen internen Serverfehler auf allen meinen Seiten.
Jede Hilfe wäre sehr willkommen… die obigen Kommentare befassten sich meist mit dem Entfernen von .php, daher wusste ich nicht, ob diese zutreffen würden.
Es sieht so aus, als hätten Sie es zum Laufen gebracht, vielleicht ohne es zu wissen. Ich habe Ihre Website besucht und die Seiten wurden mit der .html-Erweiterung geladen, aber als ich die .html entfernt habe, wurde dieselbe Seite geladen.
Diese Rewrite-Regeln bedeuten nicht, dass die Seite unter dem alten Namen nicht mehr geladen wird, sondern sie ermöglichen einfach, dass der andere Name auch funktioniert. Ich stelle mir vor, dass es einen Weg gibt, die .html auf die extensionless URL umzuleiten, aber ich bin mir nicht sicher, wie und ich stelle mir vor, dass es einen ausgefallenen Trick gibt.
Hat jemand dies versucht, während AJAX verwendet wurde, um den Hauptinhalt einzufügen? Ich frage mich, ob das etwas mit meinem mangelnden Erfolg zu tun hat…?
Hallo zusammen, Ich versuche, http://www.example.com/services.php?m=services&s=scan book&id=2 zu http://www.example.com/services/services/scan-book/2 umzuschreiben. Ich habe viele Wege ausprobiert und auch die obigen Beispiele getestet. Aber es ist noch nicht in Ordnung. Ich bin auf folgenden Fehler gestoßen. Interner Serverfehler Der Server hat einen internen Fehler oder eine Fehlkonfiguration festgestellt und konnte Ihre Anfrage nicht abschließen. Bitte kontaktieren Sie den Serveradministrator, [email protected] und so weiter…. Kann mir jemand helfen, mein Problem zu lösen bitte?
Ich habe es auf viele Arten in der .htaccess.txt-Datei versucht. Aber immer noch keine Veränderung. Ich denke, das Problem ist vielleicht etwas anders. Kann jemand das Problem erraten?
Ich bin mir nicht sicher, ob das immer der Fall ist, aber versuchen Sie, die .txt-Erweiterung aus dem Dateinamen zu entfernen. Sie sollte nur .htaccess lauten und seien Sie sich bewusst, dass Ihr Betriebssystem (wie auf meinem Mac) Dateien ausblenden kann, die mit einem Punkt beginnen.
Wenn alles andere fehlschlägt, nenne ich sie ohne Punkt und vielleicht mit dem Dateityp .txt und benenne sie dann um, sobald sie auf meinen Server hochgeladen wurde.
Ich bin neu in der Erstellung von htaccess-Code und habe ein Problem damit, das sehr störend ist.
Ich verwende den von Boris geschriebenen Code, der für mich perfekt sein könnte. Mein einziges Problem ist, dass, wenn ich auf den folgenden Link klicke: http://mydomain.com/login/ oder http://mydomain/login (was eigentlich http://mydomain.com/login.php ist), wird er perfekt weitergeleitet, aber mein href wird wie folgt: mydomain.com/login/login.
Nach meinem Verständnis wird der letzte Schrägstrich als Stammverzeichnis betrachtet, so dass das Programm die URL daran anhängt, aber das möchte ich nicht. Wie kann ich dieses Phänomen vermeiden, was ist mein Problem?
Ich habe die .htaccess-Datei auf meiner Website erstellt und den oben genannten Code eingefügt. Nichts. Ich benutze Godaddy, falls das etwas bedeutet. Ich benutze auch Smultron, um meine Website zu codieren.
Die URL ändert sich perfekt zu dem, was ich will. Aber die Seite bleibt dieselbe. Zum Beispiel, Angenommen, ich bin auf page1.php. Wenn ich auf das Menü 'page2' klicke (page2), ändert sich die URL zu "domainname/dir/?page2", aber der Browser zeigt nicht den Inhalt von 'page2' an. Ich verwende kein CMS. Es ist nur eine einfache PHP-Website.
Hallo Niall… Ich habe deinen Code ausprobiert.. habe php in html im Code geändert jedoch funktioniert nur EIN Link von allen Links auf der Seite.. andere zeigen "404" oder Zugriff verweigert
Ich habe auch hinzugefügt Options -MultiViews, da ich bei 1and1.com hoste
Unten ist der genaue Code, den ich für Ihre Referenz in .htaccess verwendet habe
Options -MultiViews AddType text/x-component .htc RewriteEngine On RewriteBase /organic-herbal
remove .php; use THE_REQUEST to prevent infinite loops
FYI kann das oben in jeden Apache-Server eingefügt werden und Sie können auf example.php oder /example-Ordner verweisen, die ebenfalls korrekt gerendert werden. Aber benennen Sie keine Datei foo.php und keinen Ordner foo, Apache wird sich beschweren :)
Sollte funktionieren, wenn sich die .htaccess im Stammverzeichnis befindet, oder? Andernfalls müssten Sie die Domain angeben, was meiner Meinung nach die früheren Zeilen sind;
RewriteBase /
Dies sollte GET-Variablen in der URL sauber hinterlassen, ohne die index.php
Ich habe 25 verschiedene Lösungen getestet und nur diese macht meinen Morgen glücklich. Danke Niall. Und jetzt frage ich mich – ist das wirklich nötig für SEO oder ist es nur … ?
Ja, es ist mein Baby, ich arbeite schon eine Weile daran, es hilft wirklich bei SEO. Wenn überhaupt, denke ich, ist es nur sinnvoll, keine Dateierweiterung für ein normales Broschürenpublikum anzuzeigen.
Ich habe ungefähr 15 verschiedene Codes ausprobiert, um die Seite ohne .php am Ende laden zu lassen, aber keiner funktioniert.
Ich habe mich an meinen Hoster gewandt und sie rieten mir, dass nichts auf dem Server mod_rewrite verhindern sollte.
Dies ist der letzte, den ich versucht habe. Brauche ich die Datei in einem bestimmten Format. Ich habe die ursprüngliche leere htaccess-Datei heruntergeladen und in Wordpad geöffnet.
Ich habe Probleme, RewriteRule auf meiner Website zum Laufen zu bringen. Ich habe den folgenden Code verwendet, aber er scheint nicht zu funktionieren. Ich weiß wirklich nicht, wie ich das .php beim Laden der Seite entfernen kann.
Hallo Niall, ich habe den Code ausprobiert, er funktioniert, aber macht Folgendes 1) Wenn ich mit der Maus über den Link fahre, z. B. über "Über uns", und nach unten schaue, wird aboutus.php angezeigt, aber wenn ich klicke, wird http://www.mysite/aboutus ohne einen Schrägstrich vorne angezeigt. 2) Ich möchte nicht, dass Leute das .php sehen, wenn sie mit der Maus über den Link fahren, bevor sie klicken
Ich würde Folgendes zum Testen verwenden: http://htaccess.madewithlove.be. Ich kann Ihnen dabei helfen, aber am besten besorgen Sie sich eine gute Testumgebung, da ich es hasse, den Leuten 500 Fehler zu geben :)
RewriteEngine On RewriteCond %{SCRIPT_FILENAME} !-d RewriteRule ^([^\.]+)$ $1.php [NC,L]
Funktionierte bei mir gut. Es scheint, dass viele Leute nicht erkennen, dass, damit dies funktioniert, Sie zur neuen URL ohne Erweiterung navigieren müssen, z.B. http://www.domain/help.php, Sie würden zu http://www.domain/help browsen und der Browser lädt help.php…. es wird nicht magisch die .php-Erweiterung entfernen, wenn Sie sie so in die URL eingegeben haben oder auf die Seite mit einem href verlinkt haben, der die .php-Erweiterung enthält.
Ich habe eine Website mit einem WordPress-Blog. Ich habe die php-Erweiterung aller Dateien im Stammverzeichnis mit htaccess entfernt. Wenn ich http://www.mydomain.com/blog aufrufe, wird zu einer 404-Seite weitergeleitet. Ich habe eine htaccess innerhalb des WordPress-Ordners mit Rewrite Engine off erstellt, aber ohne Erfolg.
Ich habe das gleiche Problem. Gibt es eine Problemumgehung dafür? Alle Unterverzeichnisse innerhalb des Stammverzeichnisses werden zu 404 weitergeleitet.
Hallo! Ich habe einen Blogger und wie bei anderen Websites cPanel kann ich die .htaccess-Datei nicht finden, die im versteckten Format vorliegt. Bitte lassen Sie mich wissen, "Wie kann ich die .htaccess-Datei finden" im Stammverzeichnis meines Bloggers, oder darf ich eine neue .htaccess-Datei für meinen Blogger erstellen. Bitte lösen Sie mein Problem. Danke und beste Grüße an alle Leser.
Ich arbeite an einer Website.. Ich habe ein Problem in der .htaccess-Datei, wenn ich die URL .php verstecke, funktioniert sie perfekt auf dem Localhost, aber wenn ich sie auf die Live-Site oder den Server hochlade, erhalte ich möglicherweise einen 404-Fehler Datei oder Verzeichnis nicht gefunden…
Ich ändere alles wie http.conf mod_enable und alles, aber ohne Ergebnis Meine ganze Zeit verschwendet auf diesem Thema, aber keine Ausgabe, also bitte helfen Sie mir..
Vielen Dank im Voraus.. Ich warte auf Ihre Antwort…
Ich weiß das nicht. Ich würde denken, dass das Entfernen Ihrer Erweiterungen bestenfalls problematisch wäre. Ich sehe das immer mehr, aber ich kann nicht umhin zu denken, dass es ein Fehler ist. Ich würde den abschließenden Schrägstrich definitiv nicht verwenden, da er ein Verzeichnis darstellt. Vielleicht für eine kleine Website oder einen Blog, aber für eine große Website scheint er zu viel Risiko mit sich zu bringen. Was ist mit all den Links, die bereits auf Ihre Seiten zeigen? Ich glaube, Sie müssen alle Ihre internen Links ändern. CSS-Dateien und Bilder könnten aufhören zu funktionieren. Es scheint einfach ein großes Risiko für Websites mit höherem Traffic zu sein, insbesondere.
Wann haben Sie das letzte Mal eine URL in eine verschachtelte Webdatei eingegeben? Die meisten verwenden einen Link. Geschäfte wie Amazon tun dies nicht und dominieren das Web. Ich bezweifle, ob es wirklich einen SEO-Wert gibt.
IIS-Server verwenden keine htaccess, es ist eine Apache-Datei für generell PHP-Einstellungen, es sei denn, ich vermisse etwas. Suchen Sie nach IIS- oder ASPX-Rewrite-Skripten, das sollte helfen :)
RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME}.html -f RewriteRule ^(.*)$ $1.html Ich habe alles versucht, ohne Erfolg, sogar HTML-Dateien in ein Unterverzeichnis gelegt und es in einen Ordner umbenannt, z.B. http://stuartmansfield.com/bio/index.html bio-Ordner Ich benutze Dreamweaver CS6 FluidGrid Layout HTML5, ich denke, Go Daddy hat keine Ahnung, weiß jemand wie? Ich habe alles oben versucht, ich bin am Ende meiner Weisheit.
Für alle Neulinge, die damit Probleme haben: Sie müssen alle .html-Links aus Ihrem Quellcode entfernen, damit RewriteCond funktioniert. Das ist in Dreamweaver für jeden, der es benutzt, einfach zu machen. Verwenden Sie einfach die Funktion 'Suchen' und geben Sie .html für Ihre gesamte Website ein und 'Alle ersetzen' durch nichts.
Hallo allerseits zum Entfernen von .html Nachdem ich viele verschiedene Wege ausprobiert habe, hat dies für mich funktioniert. im .htaccess-Stammverzeichnis
RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^([^.]+)$ $.html [L]
Das Hosting-Unternehmen ist Go-Daddy, aber ich kann das mit Dreamweaver CC Bootstrap FTP nicht zum Laufen bringen, die Website zum Testen, aber immer noch kein Erfolg!
Wie entferne/verstecke ich das .html in meiner URL? Ich benutze Adobe Muse und es wird von web.com gehostet. Bitte helfen Sie, ich habe alle hier aufgeführten Codes ausprobiert und keine Änderungen an der URL vorgenommen.
Ich habe schon ein paar Adobe CMS benutzt, nie ein großer Fan, selbst auf Enterprise-Ebene, aber das ist nur meine Meinung. Ebenso können dies und Dinge wie Kentico, die ich in die Kategorie "schwierig, normale Dinge zu tun" einordne, normalerweise im CMS gefunden werden.
Ich habe htaccess für andere Weiterleitungen verwendet, aber ich bin verwirrt, Erweiterungen zu entfernen und habe ein paar Fragen.
Wenn ich die Erweiterung manuell von einem Dateinamen entferne, kann ich die Seite auf meinem Computer nicht anzeigen (ich schreibe Code von Hand, verwende kein CMS usw.). Ich habe versucht, eine Website mit MAMP einzurichten (nie wieder).
Wenn ich die Seiten mit .html-Erweiterungen lade und das html mit htaccess entferne, damit sie ohne .html indiziert werden, gehe ich davon aus, dass alle externen Links die .html-Erweiterung entfernt bekommen müssen. Ja?
Außerdem sehe ich nicht, wie diese Weiterleitung etwas verbirgt, da jeder den Quellcode einsehen kann.
Es ist lange her, aber ich möchte ein paar Punkte machen
Es ist irgendwie eine Frage der Schönheit (genannt "Pretty URLs" - die besser verständlich sind); Und nicht nur für .html-Dateien! für alle Arten von Dateien und die meisten von ihnen sind keine .html-Dateien, sondern -hässliche- PHP/ASP-Dateien!
Außerdem können Sie fortgeschrittenere Dinge tun, wie z. B. einen Query-String in eine einfache URL umwandeln.
Ist es nicht schön, „example.com/sample/anothersample1/anothersample2“ anstatt lang/hässlich „example.com/sample.php?longquery=anothersample1&anotherlongerquery=anothersample2“ (Das wird hier natürlich nicht erwähnt und erfordert etwas Arbeit und Nachdenken)
Und es ist keine Weiterleitung. Es ist eine Umschreibung.
Das Folgende kann als übertrieben angesehen werden, aber ich nehme es gerne noch einen Schritt weiter, indem ich einen nachgestellten Schrägstrich hinzufüge. Wenn der Schrägstrich fehlt, fühlt es sich an, als ob etwas fehlt… unvollständig? Nur eine persönliche Macke, schätze ich.
Diese Regel wird site.com/path/ abgleichen und prüfen, ob site.com/path.php existiert. Wenn die Datei existiert, wird die Umschreibung fortgesetzt.
RewriteCond /%{REQUEST_FILENAME}.php -f
RewriteRule ^([a-zA-Z0-9_-\s]+)/$ /$1.php
Das mag ziemlich anfängerhaft erscheinen, aber wenn Sie einen Schrägstrich nach http://example.com/about möchten, könnten Sie genauso gut http://example.com/about/index.html verwenden, was viel einfacher ist.
Aber ich schätze, Sie haben eine spezielle Situation, die Ihren .htaccess-Ansatz ermöglicht =]
Das untergräbt aber irgendwie den Sinn, oder? Die Idee ist, all diese hässlichen Dateiendungen und technischen Wörter aus Ihren URLs zu entfernen.
Ich denke, @bram meinte, dass http://example.com/about/ zu http://example.com/about/index.html aufgelöst wird (ohne den index.html-Teil anzuzeigen).
Anstatt RewriteRule ^([a-zA-Z0-9_-\s]+)/$ /$1.php könnten Sie RewriteRule ^(.*)/$ /$1.php verwenden
Greg, vielen Dank für Ihren Beitrag hier. Er ist großartig.
Dieser scheint etwas einfacher zu sein
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.*)$ $1.php
Diese Version bricht alle URLs mit einem Bindestrich '-' zwischen Wörtern.
Obwohl Gregs scheint das auch zu tun…
Ich bin auf dieses Problem noch nie gestoßen. Tatsächlich habe ich es gerade ausprobiert und es hat einwandfrei funktioniert.
Nachdem ich alle obigen Beispiele ausprobiert habe,
RewriteRule ^about$ about.php [L]&
RewriteEngine onRewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.*)$ $1.php
Ich kann keine Änderung an den URLs meiner Website sehen.
Die Endung ist beim Neuladen der Seite immer noch sichtbar.
Haben Sie Ideen, wie ich das korrigieren kann?
mod rewrite funktioniert nur auf Apache-Servern.
Bevor Sie es versuchen, stellen Sie bitte sicher, dass Sie auf einem Apache-Server arbeiten und das Modul/die Erweiterung mod rewrite aktiviert ist.
@Chris Radford
Hallo Chris Radford, es könnte ein Serverproblem bei Ihnen vorliegen oder Sie verwenden möglicherweise kein Apache.
Ich habe den obigen Code verwendet und er funktioniert gut für meine Website.
http://jayjalaramext.com/brass-section-profile leitet zu http://jayjalaramext.com/brass-section-profile.php weiter
Danke
das funktioniert gut
Ich kann keine Änderung an den URLs meiner Website sehen. Wie kann ich das ändern? Wenn ich besuche, finde ich jedes Mal die .html-Erweiterung. Bitte geben Sie mir eine einfache Lösung dafür… Ich warte auf Expertenantwort…. Danke
Danke Dyllon.
Sehr geehrter Dyllon,
Sie haben nicht erwähnt, wie wir diesen Code anwenden sollen! Dafür werde ich anleiten…
Wir erstellen eine Datei mit dem Namen (.htaccess) und fügen dann diesen Code ein.
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.*)$ $1.php
und speichern sie im Stammverzeichnis der Website.
Und danach ändern wir einen Link nach dem anderen, z.B. about_us.php zu about_us und so weiter.
Genießen Sie weiterhin das Programmieren.
Danke.
Hallo allerseits
zum Entfernen von .html
Nachdem ich viele verschiedene Wege ausprobiert habe, hat dies für mich funktioniert. im .htaccess-Stammverzeichnis
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^.]+)$ $.html [L]
Ich mag diesen Schnipsel, aber wie kann ich ihn verwenden? Wo verwende ich ihn? Kann mir das jemand ausführlich erklären?
Fügen Sie ihn in Ihre .htaccess-Datei im Verzeichnis ein, in dem die Änderungen wirksam werden sollen
Eine einfache Sache: Diese Regel wird in eine Apache Server .htaccess-Datei eingefügt. Wenn Sie diese Datei nicht haben, müssen Sie sie erstellen. Und dies erfordert, dass Ihr Hoster das Rewrite-Modul aktiviert hat.
Hallo! Ich habe eine Frage zur URL-Rewrite. Ich verwende eine dynamische PHP-Datei, um meine Beiträge wie üblich zu laden, und verwende die Rewrite-Funktion in der Form: mydomain.com/id_titel-des-beitrags, wie Sie sich vorstellen können, ist die tatsächliche URL so etwas wie mydomain.com/file.php?id=XX, und ich suche in meiner Datenbank nach dem Beitrag mit id=XX.
In diesem Fall ist das Einzige, was in der URL wirklich zählt, der "id"-Teil. Sie könnten mydomain.com/id_anderer-dummer-titel-des-beitrags eingeben, und Sie gelangen zum selben Beitrag.
Aber ich habe gesehen, dass Ihre URLs, wie auf Ihrer Website, die Form css-tricks.com/category/title-of-the-post haben…. Sie verwenden keine ID, daher ist das Einzige, was mir gerade einfällt, dass Ihre DB-Abfrage nach dem Beitrag sucht, bei dem das Feld title=titel des Beitrags ist.
Habe ich Recht oder rede ich Unsinn? Ich kann diese Abfrage auch erstellen, aber ich dachte, dass die Suche nach nur einer ID für die Datenbank viel schneller ist.
All dies unter der Annahme, dass Sie auch eine dynamische Datei verwenden, die Ihre Beiträge lädt, und jeder einzelne keine unabhängige HTML-Datei ist.
Ich würde mich sehr freuen, wenn Sie mir hierzu etwas Licht geben könnten. Vielen Dank! (Ich mag Ihre Website wirklich ^^). Grüße aus Peru =]
Das ist großartig, ich wusste nicht, dass man das tun kann. Werde es später auf meinen Websites tun :)
Dyllons Methode hat bei mir funktioniert. Danke dafür, ich habe mich umgesehen und keine andere Methode, die ich gefunden habe, hat bei mir funktioniert.
Hallo Chris und alle.
Mein erster Beitrag hier. Vielen Dank für all die tollen Tipps! Ich möchte meine Lieblingsversion des Skripts teilen. Es fügt keinen nachgestellten Schrägstrich hinzu, es sei denn, Sie besuchen eine Indexdatei. Denken Sie daran, die ".php" aus Ihren href-Links zu entfernen.
RewriteEngine On
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteRule ^([^\.]+)$ $1.php [NC,L]
Hallo allerseits
Eine Frage. Ich benutze den Trick und er funktioniert perfekt mit Dateien im Hauptverzeichnis
RewriteRule ^about$ about.php [L]
Mein Problem sind Dateien in Unterverzeichnissen
RewriteRule ^/path/about$ /path/about.php [L]
Kann mir jemand helfen, den Trick anzuwenden?
Hallo
Das Entfernen der Dateiendung aus URLs funktioniert auf meiner Website nicht. Können Sie mir Tipps zur Lösung des Problems geben?
Sofern Sie keinen einzelnen Zugriffspunkt verwenden, benötigen Sie wahrscheinlich eine .htaccess-Datei in jedem Verzeichnis, um die Rewrite-Bedingungen für dieses Verzeichnis anzugeben.
Am Beispiel dieses Schnipsels würden Sie diese .htaccess-Datei sowohl im Verzeichnis http://www.example.com/about als auch im Verzeichnis http://www.example.com/about/sub platzieren.
Wie lautet der Code, wenn er sowohl .php als auch .html aus der URL entfernen soll?
Ich wollte nur sagen, dass der Kommentar "Denken Sie daran, die ".php" aus Ihren href-Links zu entfernen." der magische Sonnenstrahl war, der dies für mich zum Laufen gebracht hat! Ich hatte das anfangs nicht getan, aber jetzt funktioniert es wunderbar!
Dieser ursprüngliche Vorschlag funktioniert gut, bedeutet aber, dass Sie jede Seite auflisten müssen, um deren Erweiterung zu entfernen, was ziemlich mühsam werden kann, daher habe ich den von Doug vorgeschlagenen ausprobiert, der funktioniert und bedeutet, dass er für die gesamte Website gelten kann, anstatt jede Seite anzugeben. Der von Boris vorgeschlagene funktioniert auch und hat eine Codezeile weniger, also verwende ich diesen.
Die Frage ist also: Gibt es eine Möglichkeit, diesen sitewide Code mit einem 301 zu kombinieren, um alle Anfragen automatisch auf ihre extensionless URL umzuleiten???
P.S. Wirklich großartige Seite im Allgemeinen und liebe die htaccess-Tipps.
Ja, die Änderung der Erweiterung auf allen Seiten ist mühsam. Können Sie mir bitte den Code senden, den Sie einmal verwendet haben?
@Richard Ellis: Wenn die Erweiterungen Ihrer Website etwas anderes als ".php" sind, müssen Sie die ".php" in den von Ihnen kopierten Code in ".html" ändern.
Der Code hat funktioniert, aber jetzt hat er mein ganzes CSS entfernt, wenn Sie direkt zu http://www.whitebluffsbrewing.com/news gehen – Vorschläge?
Entschuldigung, mein Englisch ist zu schlecht, also benutze ich Google Translate: "Damit es funktioniert, müssen Sie sicherstellen, dass Sie im
<head>Ihrer Seite das Meta-Tag<base href = "/" />haben und dass der href auf das Stammverzeichnis Ihrer Website verweist..."Danke! Das hat für mich funktioniert!!!!
Hallo nochmal.
Es tut mir leid, dass ich diese schlechte Ratschläge im früheren Beitrag gegeben habe – .php von href-Links zu entfernen. Ich war jung und dumm.
Ich habe eine bessere Lösung. Ich habe beschlossen, etwas ins Detail zu gehen für diejenigen, die es brauchen. Schauen Sie sich das an und lesen Sie weiter.
# Apache Rewrite Rules <IfModule mod_rewrite.c> Options +FollowSymLinks RewriteEngine On RewriteBase / # Add trailing slash to url RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_URI} !(\.[a-zA-Z0-9]{1,5}|/|#(.*))$ RewriteRule ^(.*)$ $1/ [R=301,L] # Remove .php-extension from url RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME}\.php -f RewriteRule ^([^\.]+)/$ $1.php # End of Apache Rewrite Rules </IfModule>Dinge, die Sie wissen wollen, denke ich
1. Dies ist für Websites, die keinen Front-End-Controller verwenden, bei dem alle Anfragen durch index.php geleitet werden. Wenn Sie dies benötigen, müssen Sie den dritten Block durch Ihren eigenen ersetzen.
2. Das Beispiel wird nur mit .php gezeigt. Wenn Sie es z.B. mit .html verwenden möchten, müssen Sie den dritten Block kopieren/einfügen und ".php" in Zeile (1,) 3 und 4 durch ".html" ersetzen (es sei denn, jemand hat eine gute Möglichkeit, dies zu tun?)
3. Der Inhalt von "http://example.com/something/" kann entweder von "http://example.com/something.php" oder von "http://example.com/something/index.php" geliefert werden.
4. Um auf andere Seiten zu verlinken, einfach href=”/some/thing/” oder href=”http://example.com/some/thing/”.
5. Mit .css und .js möchten Sie href=”/style.css” oder href=”/folder1/style.css”. Andernfalls, wenn Sie href=”style.css” von “http://example.com/folder2/file.php” aufrufen, sucht es nach “http://example.com/folder2/style.css”.
Boris
@Boris: Ich verwende Ihre Lösung auf meiner Website und sie funktioniert großartig für eine Ebene. Vielen Dank! Aber wie verwende ich sie für eine Website mit mehreren Ebenen? Wenn ich example.com/contact.html einrichte, leitet example.com/contact/ zu dieser Seite weiter. Aber wenn ich ein Verzeichnis namens contact/ erstelle und versuche, contact/thanks.html hinzuzufügen (ich möchte, dass example.com/contact/thanks/), dann führt das Aufrufen von example.com/contact nur zur Auflistung des contact-Verzeichnisses anstatt contact.html. Wie beheben Sie das? (Oder ist eine andere Hierarchie besser?)
Dies funktioniert sehr gut, um den nachgestellten Schrägstrich wieder einzufügen, aber was ist, wenn Sie Variablen in Ihre URL einfügen möchten? Wenn ich zum Beispiel wanted example.com/something/variable_for_something_template, wobei something eigentlich „something.php“ ist und variable_for_something_template ein Wert ist, nach dem das something.php-Template sucht?
Großartig! Ich habe Ihren Code verwendet und er hat auf meiner Website funktioniert, aber er berücksichtigt die CSS- und Js-Dateien nicht.
Was soll ich tun?
Danke, Boris. Ihre Lösung hat für mich perfekt funktioniert! :)
Hallo zusammen,
Ich habe versucht, die .html-Dateiendung von meiner Website zu entfernen.
Ich habe eine .htaccess-Datei in mein Stammverzeichnis hochgeladen, mit diesem
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.html -f
RewriteRule ^([^/]+)/$ $1.html
Es passiert nichts.
Ich habe zuvor Folgendes versucht:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.html -f
RewriteRule ^(.*)$ $1.html
Und bekam auch einen internen Serverfehler auf allen meinen Seiten.
Jede Hilfe wäre sehr willkommen… die obigen Kommentare befassten sich meist mit dem Entfernen von .php, daher wusste ich nicht, ob diese zutreffen würden.
Danke!
Es sieht so aus, als hätten Sie es zum Laufen gebracht, vielleicht ohne es zu wissen. Ich habe Ihre Website besucht und die Seiten wurden mit der .html-Erweiterung geladen, aber als ich die .html entfernt habe, wurde dieselbe Seite geladen.
Diese Rewrite-Regeln bedeuten nicht, dass die Seite unter dem alten Namen nicht mehr geladen wird, sondern sie ermöglichen einfach, dass der andere Name auch funktioniert. Ich stelle mir vor, dass es einen Weg gibt, die .html auf die extensionless URL umzuleiten, aber ich bin mir nicht sicher, wie und ich stelle mir vor, dass es einen ausgefallenen Trick gibt.
Hoffe, ich habe geholfen.
Ändern Sie die Berechtigungen in Ihrem Dateimanager auf dem Server auf "644" oder "777", vielleicht funktioniert es.
Hallo, großartiger Beitrag und interessantes Thema. Danke fürs Teilen.
Ich fand Boris' letzte Einreichung als die beste Option.
Hat jemand dies versucht, während AJAX verwendet wurde, um den Hauptinhalt einzufügen? Ich frage mich, ob das etwas mit meinem mangelnden Erfolg zu tun hat…?
Ich habe dies in der .htaccess-Datei versucht, aber es funktioniert nicht. Können Sie das bitte überprüfen?
Ich habe mein Forum von .php in .html umgeschrieben, wie folgt;
RewriteEngine On
RewriteBase /forum
RewriteRule ^(.*)_([0-9]+).html$ index.php?id=$2 [L]
RewriteRule ^(.*)_([0-9]+)_p([0-9]+).html$ index.php?id=$2&page=$3 [L]
RewriteRule ^(.*)_p([0-9]+).html$ index.php?act=post&id=$2 [L]
RewriteRule ^(.*)_([0-9]+)_s([0-9]+).html$ index.php?id=$2&start=$3 [L]
RewriteRule ^(.*)_([0-9]+)_clip_p([0-9]+).html$ index.php?id=$2&clip&page=$3 [L]
Kann mir jemand helfen, die .html-Erweiterung zu entfernen?? Bitte,,,
Hallo zusammen,
Ich versuche, http://www.example.com/services.php?m=services&s=scan book&id=2 zu http://www.example.com/services/services/scan-book/2 umzuschreiben. Ich habe viele Wege ausprobiert und auch die obigen Beispiele getestet. Aber es ist noch nicht in Ordnung. Ich bin auf folgenden Fehler gestoßen.
Interner Serverfehler
Der Server hat einen internen Fehler oder eine Fehlkonfiguration festgestellt und konnte Ihre Anfrage nicht abschließen.
Bitte kontaktieren Sie den Serveradministrator, [email protected] und so weiter….
Kann mir jemand helfen, mein Problem zu lösen bitte?
Vielen Dank
Hallo zusammen,
Ich versuche, die URL http://www.example.com.br/folder/sub_folder/my_profile.php zu
http://www.example.com.br/folder/my-profile umzuschreiben. Ich habe viele Rewrite-Methoden ausprobiert, aber ich kann die URL nicht weiterleiten.
Bitte helfen Sie jemandem, dies zu lösen.
Ich habe es auf viele Arten in der .htaccess.txt-Datei versucht. Aber immer noch keine Veränderung. Ich denke, das Problem ist vielleicht etwas anders. Kann jemand das Problem erraten?
Ich bin mir nicht sicher, ob das immer der Fall ist, aber versuchen Sie, die .txt-Erweiterung aus dem Dateinamen zu entfernen. Sie sollte nur .htaccess lauten und seien Sie sich bewusst, dass Ihr Betriebssystem (wie auf meinem Mac) Dateien ausblenden kann, die mit einem Punkt beginnen.
Wenn alles andere fehlschlägt, nenne ich sie ohne Punkt und vielleicht mit dem Dateityp .txt und benenne sie dann um, sobald sie auf meinen Server hochgeladen wurde.
Hallo Kumar,
Ich hoffe, das hilft Ihnen,
Options +FollowSymLinks
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.*)$ $1.php
Es funktioniert für mich..
Es wird eine 404-Seite nicht gefunden-Fehlermeldung generiert… Bitte geben Sie mir einen Rat… Bitte.
hi
Ich verwende den folgenden Code, aber er funktioniert nicht auf meinem lokalen Host, also bitte helfen Sie mir.
RewriteEngine on
RewriteBase /test/
RewriteRule ^enquiry$ enquiry.html [L]
Hallo,
Ich möchte die URLs auf meiner Website so ändern wie bei WordPress
Ich habe: http://mysite.com/5-remove-file-extention-from-urls.html
Wie umschreiben zu: http://mysite.com/remove-file-extention-from-urls
htaccess
RewriteRule ^page,([0-9]+),([0-9]+),([0-9]+)-(.).html(/?)+$ index.php?newsid=$3&news_page=$1&cstart=$2&seourl=$4 [L]
RewriteRule ^page,([0-9]+),([0-9]+)-(.).html(/?)+$ index.php?newsid=$2&news_page=$1&seourl=$3 [L]
RewriteRule ^print:page,([0-9]+),([0-9]+)-(.).html(/?)+$ engine/print.php?news_page=$1&newsid=$2&seourl=$3 [L]
RewriteRule ^([0-9]+)-(.).html(/?)+$ index.php?newsid=$1&seourl=$2 [L]
Danke.
Hallo zusammen,
Ich bin neu in der Erstellung von htaccess-Code und habe ein Problem damit, das sehr störend ist.
Ich verwende den von Boris geschriebenen Code, der für mich perfekt sein könnte. Mein einziges Problem ist, dass, wenn ich auf den folgenden Link klicke: http://mydomain.com/login/ oder http://mydomain/login (was eigentlich http://mydomain.com/login.php ist), wird er perfekt weitergeleitet, aber mein href wird wie folgt: mydomain.com/login/login.
Nach meinem Verständnis wird der letzte Schrägstrich als Stammverzeichnis betrachtet, so dass das Programm die URL daran anhängt, aber das möchte ich nicht. Wie kann ich dieses Phänomen vermeiden, was ist mein Problem?
Vielen Dank im Voraus für Ihre Hilfe!
Hallo,
Ich habe die .htaccess-Programmierung gelesen und ausprobiert, aber ohne Erfolg. Ich möchte http://www.mydomain.com/greatpage eingeben und es wird zu http://www.mydomain.com/greatpage.php weitergeleitet.
Ich habe die .htaccess-Datei auf meiner Website erstellt und den oben genannten Code eingefügt. Nichts. Ich benutze Godaddy, falls das etwas bedeutet. Ich benutze auch Smultron, um meine Website zu codieren.
Helfen Sie mir…
Ich möchte meine URL ändern
von: http://domain-name/dir/page1.php
zu: http://domain-name/dir/?page1
Dafür habe ich folgenden Code in meine .htaccess-Datei geschrieben
RewriteEngine on
RewriteCond %{THE_REQUEST} ^GET\ /[^?\s]+.php
RewriteRule (.).php$ /dir/?$1 [L,R=301]
RewriteRule (.*)/$ $1.php [L]
Die URL ändert sich perfekt zu dem, was ich will. Aber die Seite bleibt dieselbe.
Zum Beispiel,
Angenommen, ich bin auf page1.php. Wenn ich auf das Menü 'page2' klicke (page2),
ändert sich die URL zu "domainname/dir/?page2", aber der Browser zeigt nicht den Inhalt von 'page2' an.
Ich verwende kein CMS. Es ist nur eine einfache PHP-Website.
Ich habe den folgenden Code verwendet, aber er funktioniert nicht für http://www.example.com/index.php zu http://www.example.com/index
Können Sie mir bitte den richtigen Code und die Verwendung des Codes für unsere PHP-Datei mitteilen, wenn Sie ihn per E-Mail mit Screenshot senden?.
Vielen Dank im Voraus..,
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.*)$ $1.php
Müssen Sie die Art und Weise ändern, wie Sie auf interne Seiten verlinken, nachdem Sie dies implementiert haben? Wenn ja, wie?
Dies ist meine eigene Kreation;
AddType text/x-component .htc
RewriteEngine On
RewriteBase /
.php entfernen; THE_REQUEST verwenden, um Endlosschleifen zu verhindern
RewriteCond %{THE_REQUEST} ^GET\ (.).php\ HTTP
RewriteRule (.).php$ $1 [R=301]
Index entfernen
RewriteRule (.*)/index$ $1/ [R=301]
Slash entfernen, wenn kein Verzeichnis
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} /$
RewriteRule (.*)/ $1 [R=301]
füge .php hinzu, aber leite nicht weiter
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteCond %{REQUEST_URI} !/$
RewriteRule (.*) $1.php [L]
Pastie Link unten, Kopieren und Einfügen vom Blog kann es verderben :)
http://pastie.org/6011480
Hallo Niall…
Ich habe deinen Code ausprobiert..
habe php in html im Code geändert
jedoch funktioniert nur EIN Link von allen Links auf der Seite.. andere zeigen "404" oder Zugriff verweigert
Ich habe auch hinzugefügt
Options -MultiViews, da ich bei 1and1.com hoste
Unten ist der genaue Code, den ich für Ihre Referenz in .htaccess verwendet habe
Options -MultiViews
AddType text/x-component .htc
RewriteEngine On
RewriteBase /organic-herbal
RewriteCond %{THE_REQUEST} ^GET\ (.).html\ HTTP
RewriteRule (.).html$ $1 [R=301]
RewriteRule (.*)/index$ $1/ [R=301]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} /$
RewriteRule (.*)/ $1 [R=301]
RewriteCond %{REQUEST_FILENAME}.html -f
RewriteCond %{REQUEST_URI} !/$
RewriteRule (.*) $1.html [L]
derzeit habe ich 4 Seiten zum Testen.. 1 ist index.html
und die anderen 3 Seiten.
Ich habe unzählige Codes von verschiedenen Foren ausprobiert.. aber keiner funktioniert..
Wenn Sie mir helfen können, wäre ich dankbar..
Prasadh
Hey Bro, sehr schön, es funktioniert, vielen Dank, aber ich brauche etwas Hilfe bei solchen URLs
http://www.asdf.com?pageid=34
möchte http://www.asdf.com/pageid/34
Das funktioniert super für GoDaddy VPS, danke Mann
FYI kann das oben in jeden Apache-Server eingefügt werden und Sie können auf example.php oder /example-Ordner verweisen, die ebenfalls korrekt gerendert werden. Aber benennen Sie keine Datei foo.php und keinen Ordner foo, Apache wird sich beschweren :)
Hoffentlich hilft es :)
Perfekt Niall, einfach perfekt danke :)
Wie würde man etwas komplexeres angehen, wie zum Beispiel
http://127.0.0.1/demo/redux/index.php?p=example.txtSollte funktionieren, wenn sich die .htaccess im Stammverzeichnis befindet, oder? Andernfalls müssten Sie die Domain angeben, was meiner Meinung nach die früheren Zeilen sind;
RewriteBase /Dies sollte GET-Variablen in der URL sauber hinterlassen, ohne die index.php
Niall Flynn's Code ist der beste! Er funktioniert perfekt auf http://www.equinelux.com
Ich habe 25 verschiedene Lösungen getestet und nur diese macht meinen Morgen glücklich. Danke Niall. Und jetzt frage ich mich – ist das wirklich nötig für SEO oder ist es nur … ?
Ja, es ist mein Baby, ich arbeite schon eine Weile daran, es hilft wirklich bei SEO. Wenn überhaupt, denke ich, ist es nur sinnvoll, keine Dateierweiterung für ein normales Broschürenpublikum anzuzeigen.
Ich habe hier jetzt einen eigenständigen Beitrag dazu http://www.niallflynn.com/seo-news/remove-file-extension-from-urls/, also wer Hilfe braucht oder etwas hinzufügen möchte, kann dort Code/Kommentare hinterlassen.
Danke, dein Beitrag hat mir geholfen, ich bin dankbar.. nochmals vielen Dank.. :D
Hallo,
Brillanter Beitrag. Kann mir jemand sagen, wie man das so macht, dass es angezeigt wird
http://www.test.com/test.php als http://www.test.com/anythinghere/test.com
Danke.
Jack
Könnte helfen;
http://stackoverflow.com/questions/704102/how-does-rewritebase-work-in-htaccess
Nicht 100% sicher, was Sie meinen
Bitte versuchen Sie das :(bei mir funktioniert es gut)
Erstellen Sie eine .htaccess-Datei in Ihrem Web-Root und fügen Sie den folgenden Code ein……
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.html -f
RewriteRule ^(.*)$ $1.html
Hinweis: Ersetzen Sie html durch Ihre Dateierweiterung, z.B.: php, htm, asp
Das ist es, was für mich funktioniert hat! Danke!
Das funktioniert für mich, aber ich frage mich, wie man das vereinfachen könnte..
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.*)/$ $1.php
RewriteCond %{REQUEST_FILENAME}.html -f
RewriteRule ^(.*)/$ $1.html
RewriteCond %{REQUEST_FILENAME}.py -f
RewriteRule ^(.*)/$ $1.py
Warum? Kein wirklicher Leistungsunterschied, wenn es funktioniert, dann funktioniert es :)
Hallo,
Ich habe ungefähr 15 verschiedene Codes ausprobiert, um die Seite ohne .php am Ende laden zu lassen, aber keiner funktioniert.
Ich habe mich an meinen Hoster gewandt und sie rieten mir, dass nichts auf dem Server mod_rewrite verhindern sollte.
Dies ist der letzte, den ich versucht habe. Brauche ich die Datei in einem bestimmten Format. Ich habe die ursprüngliche leere htaccess-Datei heruntergeladen und in Wordpad geöffnet.
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.*)/$ $1.php
RewriteCond %{REQUEST_FILENAME}.html -f
RewriteRule ^(.*)/$ $1.html
RewriteCond %{REQUEST_FILENAME}.py -f
RewriteRule ^(.*)/$ $1.py
Ich habe Probleme, RewriteRule auf meiner Website zum Laufen zu bringen. Ich habe den folgenden Code verwendet, aber er scheint nicht zu funktionieren. Ich weiß wirklich nicht, wie ich das .php beim Laden der Seite entfernen kann.
Danke
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.html -f
RewriteRule ^(.*)$ $1.html
Versuchen Sie, die Dateierweiterung aus dem href-Code in HTML zu entfernen, nachdem Sie diesen Code in die .htaccess eingefügt haben.
Haben Sie die Korrektur hier versucht?
http://www.niallflynn.com/seo-news/remove-file-extension-from-urls/
Das werde ich jetzt versuchen.
danke
Hallo Niall, ich habe den Code ausprobiert, er funktioniert, aber macht Folgendes
1) Wenn ich mit der Maus über den Link fahre, z. B. über "Über uns", und nach unten schaue, wird aboutus.php angezeigt, aber wenn ich klicke, wird http://www.mysite/aboutus ohne einen Schrägstrich vorne angezeigt.
2) Ich möchte nicht, dass Leute das .php sehen, wenn sie mit der Maus über den Link fahren, bevor sie klicken
Bitte um Ihre Hilfe.
Danke
Oh, das ist einfach, entfernen Sie einfach den .php-Link aus Ihrem a href;
Also wenn du hättest;
Mein Link
Ändere es zu;
Mein Link
Das wird es beheben und dann, wenn jemand versucht, zu /zyz.php oder /zyz/ zu gehen, wird er dasselbe bekommen :)
Ok, das werde ich jetzt versuchen.
Danke
Hallo Niall,
Es hat gut funktioniert.
Entschuldigung, dass ich zu viele Fragen stelle.
Außerdem macht meine Website etwas wie http://www.mysite/news.php?id=1&content=23. Wie mache ich daraus http://www.mysite/news/1/23
Danke
Chika
Hallo
Kann mir jemand sagen, wie man diesen Trick innerhalb eines Subdomains macht?
z.B.
http://www.mysite.com/sub/about.php
sollte umgeschrieben werden zu
http://www.mysite.com/sub/about
oder
http://www.mysite.com/sub/about/
danke
http://www.niallflynn.com/seo-news/remove-file-extension-from-urls/
Soweit ich mich erinnere, ist die 3. Zeile RewriteBase / muss geändert werden.
Ich würde hier nachsehen http://www.silverstripe.org/general-questions/show/5168
Ich muss einen Teil des Dateinamens / der Erweiterung ENTFERNEN.
Von diesem
http://example.com/news/local/nameoffile.REMOVE.shtml
zu diesem
http://example.com/news/local/nameoffile.shtml
Hallo, ich habe diesen Code auf der Website meines Kunden ausprobiert, aber er funktioniert nicht. Ganz einfach möchte ich die URL ändern
http://www.ninacooke.co.uk/page.php?f=lorem
in
http://www.ninacooke.co.uk/page/lorem
Mein erster Schritt war, dass http://www.ninacooke.co.uk/page funktioniert, also habe ich diesen Code verwendet
RewriteEngine on
RewriteBase /
RewriteRule ^page$ page.php [L]
aber es funktioniert nicht. Kann mir bitte jemand sagen, wie ich das machen soll?
ok ich habe den Code etwas geändert zu
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteBase /
RewriteRule ^page/([a-zA-Z0-9]+)/$ page.php?f=$1
</IfModule>
aber es funktioniert immer noch nicht…
Es sollte ändern
http://www.ninacooke.co.uk/page.php?f=lorem
in
http://www.ninacooke.co.uk/page/lorem
Was mache ich falsch?
Ich würde Folgendes zum Testen verwenden: http://htaccess.madewithlove.be. Ich kann Ihnen dabei helfen, aber am besten besorgen Sie sich eine gute Testumgebung, da ich es hasse, den Leuten 500 Fehler zu geben :)
Ich habe es zum Laufen gebracht, indem ich http://www.ninacooke.co.uk/page.php?f=lorem nach http://www.ninacooke.co.uk/page/index.php?f=lorem verschoben und diesen Code verwendet habe
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteBase /
RewriteRule ^page/([a-zA-Z0-9]+)$ page/index.php?f=$1
</IfModule>
jetzt funktioniert http://ninacooke.co.uk/page/lorem ok :)
Das ist cool
Hallo Monika, dein Code funktioniert nicht.
Mein ist localhost/d/page.php?id=contact und ich habe deinen Code verwendet.. Aber er funktioniert nicht.
RewriteEngine on
RewriteBase /
RewriteRule ^d/([a-zA-Z0-9]+)$ d/index.php?f=$1
Es sollte zu localhost/d/contact wechseln.. Aber nichts ist passiert????
RewriteEngine OnRewriteCond %{SCRIPT_FILENAME} !-d
RewriteRule ^([^\.]+)$ $1.php [NC,L]
Funktionierte bei mir gut. Es scheint, dass viele Leute nicht erkennen, dass, damit dies funktioniert, Sie zur neuen URL ohne Erweiterung navigieren müssen, z.B. http://www.domain/help.php, Sie würden zu http://www.domain/help browsen und der Browser lädt help.php…. es wird nicht magisch die .php-Erweiterung entfernen, wenn Sie sie so in die URL eingegeben haben oder auf die Seite mit einem href verlinkt haben, der die .php-Erweiterung enthält.
Ich hoffe, das hilft..
Oder Sie können natürlich den ganzen Overkill von
mod_rewritefür eine solche Aufgabe vermeiden und einfach verwendenIch habe eine Website mit einem WordPress-Blog. Ich habe die php-Erweiterung aller Dateien im Stammverzeichnis mit htaccess entfernt. Wenn ich http://www.mydomain.com/blog aufrufe, wird zu einer 404-Seite weitergeleitet. Ich habe eine htaccess innerhalb des WordPress-Ordners mit Rewrite Engine off erstellt, aber ohne Erfolg.
Bitte nehmen Sie dieses Problem ernst. Vielen Dank im Voraus.
Ich habe das gleiche Problem. Gibt es eine Problemumgehung dafür? Alle Unterverzeichnisse innerhalb des Stammverzeichnisses werden zu 404 weitergeleitet.
Hat jemand eine Lösung dafür gefunden?
Wie entferne ich .php in meiner statischen Website.
Bitte helfen Sie.
Ich habe hier einen nützlichen Beitrag, der helfen könnte: http://www.niallflynn.com/seo-news/remove-file-extension-from-urls/
Danke #Niall
Normalerweise verwenden wir es so
Nachdem ich .htaccess verwendet habe, erhalte ich einen Fehler bei der Anzeige von Bildern
Wenn ich die vollständige URL angebe, wird sie so angezeigt
Wie greife ich auf mein Bild zu, ohne diese URL anzugeben
Bitte geben Sie Vorschläge.
Hallo! Ich habe einen Blogger und wie bei anderen Websites cPanel kann ich die .htaccess-Datei nicht finden, die im versteckten Format vorliegt. Bitte lassen Sie mich wissen, "Wie kann ich die .htaccess-Datei finden" im Stammverzeichnis meines Bloggers, oder darf ich eine neue .htaccess-Datei für meinen Blogger erstellen. Bitte lösen Sie mein Problem. Danke und beste Grüße an alle Leser.
Ich bekomme den abschließenden Schrägstrich nicht zum Laufen. Wenn ich eine Version verwende, die ihn hat, erhalte ich eine 404. Bitte helfen Sie.
Hallo,
Ich arbeite an einer Website.. Ich habe ein Problem in der .htaccess-Datei, wenn ich die URL .php verstecke, funktioniert sie perfekt auf dem Localhost, aber wenn ich sie auf die Live-Site oder den Server hochlade, erhalte ich möglicherweise einen 404-Fehler Datei oder Verzeichnis nicht gefunden…
Ich ändere alles wie http.conf mod_enable und alles, aber ohne Ergebnis
Meine ganze Zeit verschwendet auf diesem Thema, aber keine Ausgabe, also bitte helfen Sie mir..
Vielen Dank im Voraus..
Ich warte auf Ihre Antwort…
Ich weiß das nicht. Ich würde denken, dass das Entfernen Ihrer Erweiterungen bestenfalls problematisch wäre. Ich sehe das immer mehr, aber ich kann nicht umhin zu denken, dass es ein Fehler ist. Ich würde den abschließenden Schrägstrich definitiv nicht verwenden, da er ein Verzeichnis darstellt. Vielleicht für eine kleine Website oder einen Blog, aber für eine große Website scheint er zu viel Risiko mit sich zu bringen. Was ist mit all den Links, die bereits auf Ihre Seiten zeigen? Ich glaube, Sie müssen alle Ihre internen Links ändern. CSS-Dateien und Bilder könnten aufhören zu funktionieren. Es scheint einfach ein großes Risiko für Websites mit höherem Traffic zu sein, insbesondere.
Wann haben Sie das letzte Mal eine URL in eine verschachtelte Webdatei eingegeben? Die meisten verwenden einen Link. Geschäfte wie Amazon tun dies nicht und dominieren das Web. Ich bezweifle, ob es wirklich einen SEO-Wert gibt.
Hallo,
Ich möchte die URLs auf meiner Website so ändern wie bei WordPress
Ich habe: http://mysite.com/555005-remove-file-extention-from-urls.html
Wie wird umgeschrieben zu
http://mysite.com/remove-file-extention-from-urls
in htaccess?
Danke.
Danke Niall Flynn, dein Code hat perfekt funktioniert.
Es sollte auf fast jedem Apache-Server funktionieren, es ist ein alter, aber er scheint immer noch gut zu sein.
Hallo,
Ich möchte die URL auf meiner Website ändern (ist in klassischem ASP erstellt)
Ich habe: http://mysite.com/test.asp
Wie wird umgeschrieben zu
http://mysite.com/test
in htaccess?
Danke.
IIS-Server verwenden keine htaccess, es ist eine Apache-Datei für generell PHP-Einstellungen, es sei denn, ich vermisse etwas. Suchen Sie nach IIS- oder ASPX-Rewrite-Skripten, das sollte helfen :)
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.html -f
RewriteRule ^(.*)$ $1.html
Ich habe alles versucht, ohne Erfolg, sogar HTML-Dateien in ein Unterverzeichnis gelegt und es in einen Ordner umbenannt, z.B. http://stuartmansfield.com/bio/index.html bio-Ordner Ich benutze Dreamweaver CS6 FluidGrid Layout HTML5, ich denke, Go Daddy hat keine Ahnung, weiß jemand wie? Ich habe alles oben versucht, ich bin am Ende meiner Weisheit.
Für alle Neulinge, die damit Probleme haben: Sie müssen alle .html-Links aus Ihrem Quellcode entfernen, damit RewriteCond funktioniert. Das ist in Dreamweaver für jeden, der es benutzt, einfach zu machen. Verwenden Sie einfach die Funktion 'Suchen' und geben Sie .html für Ihre gesamte Website ein und 'Alle ersetzen' durch nichts.
Tom, danke, das hat tatsächlich funktioniert, danke!
Vielen Dank für diesen hilfreichen Tipp!! Hat wie ein Zauber in meiner .htaccess-Datei funktioniert =D
Ich möchte alle Seiten OHNE Erweiterung auf Seiten mit einer .HTML-Erweiterung umleiten.
Beispiel – /my-page –zu–> /my-page.html
Danke!
Charlie
Hallo allerseits
zum Entfernen von .html
Nachdem ich viele verschiedene Wege ausprobiert habe, hat dies für mich funktioniert. im .htaccess-Stammverzeichnis
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^.]+)$ $.html [L]
Ich benutze Ideahosting und wie entferne ich die .html-Erweiterung von HTML-Seiten.
Ich möchte das so aufrufen: abc/about, nicht abc/about.html.
Kann mir jemand helfen??
Ich habe den obigen Code in die .htaccess-Datei eingefügt, aber er funktioniert nicht
Das Hosting-Unternehmen ist Go-Daddy, aber ich kann das mit Dreamweaver CC Bootstrap FTP nicht zum Laufen bringen, die Website zum Testen, aber immer noch kein Erfolg!
Hallo, ich versuche,
ammaco.com/shop_home.phpinammasco.com/shop_home/zu ändern. Irgendwelche Hilfe, bitte.Hallo,
Ich arbeite an einer Website.. Ich habe ein Problem in der .htaccess-Datei, wenn ich die URL .php verstecke, funktioniert sie perfekt.
Aber mein Problem ist, wie entferne ich diese ID-Verknüpfung
http://trustedbusiness.reviews/details.php?id=3Es ist dringend.
Kann mir jemand helfen, wie kann ich die .html-Erweiterung von meiner Website entfernen? Gilt nur für eine Seite.
Wie entferne/verstecke ich das .html in meiner URL? Ich benutze Adobe Muse und es wird von web.com gehostet. Bitte helfen Sie, ich habe alle hier aufgeführten Codes ausprobiert und keine Änderungen an der URL vorgenommen.
Ich habe schon ein paar Adobe CMS benutzt, nie ein großer Fan, selbst auf Enterprise-Ebene, aber das ist nur meine Meinung. Ebenso können dies und Dinge wie Kentico, die ich in die Kategorie "schwierig, normale Dinge zu tun" einordne, normalerweise im CMS gefunden werden.
Ich sehe hier auch einige Threads, die Suche nach SEO-freundlichen URLs könnte helfen;
https://forums.adobe.com/thread/1451607
Ich habe htaccess für andere Weiterleitungen verwendet, aber ich bin verwirrt, Erweiterungen zu entfernen und habe ein paar Fragen.
Wenn ich die Erweiterung manuell von einem Dateinamen entferne, kann ich die Seite auf meinem Computer nicht anzeigen (ich schreibe Code von Hand, verwende kein CMS usw.). Ich habe versucht, eine Website mit MAMP einzurichten (nie wieder).
Wenn ich die Seiten mit .html-Erweiterungen lade und das html mit htaccess entferne, damit sie ohne .html indiziert werden, gehe ich davon aus, dass alle externen Links die .html-Erweiterung entfernt bekommen müssen. Ja?
Außerdem sehe ich nicht, wie diese Weiterleitung etwas verbirgt, da jeder den Quellcode einsehen kann.
Es ist lange her, aber ich möchte ein paar Punkte machen
Es ist irgendwie eine Frage der Schönheit (genannt "Pretty URLs" - die besser verständlich sind); Und nicht nur für .html-Dateien! für alle Arten von Dateien und die meisten von ihnen sind keine .html-Dateien, sondern -hässliche- PHP/ASP-Dateien!
Außerdem können Sie fortgeschrittenere Dinge tun, wie z. B. einen Query-String in eine einfache URL umwandeln.
Ist es nicht schön,
„example.com/sample/anothersample1/anothersample2“
anstatt lang/hässlich
„example.com/sample.php?longquery=anothersample1&anotherlongerquery=anothersample2“
(Das wird hier natürlich nicht erwähnt und erfordert etwas Arbeit und Nachdenken)
Und es ist keine Weiterleitung. Es ist eine Umschreibung.
Ich konnte mit der .htaccess-Konfiguration Erfolg haben
Apache Rewrite Rules
Options +FollowSymLinks
RewriteEngine On
RewriteBase /
ENTFERNE DIESE ZEILE UND DIE ZEILEN UNTER SSL_REDIRECT NICHT:infocare.tk
RewriteEngine on
RewriteCond %{HTTPS} off
RewriteCond %{HTTP_HOST} ^infocare.tk$
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
ENTFERNE DIESE ZEILE UND DIE ZEILEN ÜBER SSL_REDIRECT NICHT:infocare.tk
Füge abschließenden Schrägstrich zur URL hinzu
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !(.[a-zA-Z0-9]{1,5}|/|#(.))$
RewriteRule ^(.)$ $1/ [R=301,L]
Entferne .php-Erweiterung von der URL
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^([^.]+)/$ $1.php
Ende der Apache Rewrite Rules
In meiner PHP-Datei
mein Link
Funktioniert gut!
Danke für die Hilfe!
Hallo…
Funktioniert das auch lokal? Ich programmiere ohne lokale oder Online-Server, bekomme aber ständig diese Fehlermeldung "Datei nicht gefunden".
Ich habe /store.html und möchte /store verwenden. Wie kann ich das erreichen? Der Ausschnitt hat für mich nicht funktioniert.