2016-10-25 5 views
0

Ich habe einen Dateinamen geändert und ich möchte eine permanente Weiterleitung (301) erstellen.Htaccess Redirect einzelne Datei 301

Meine .htaccess-Datei in einem Unterverzeichnis ist (http://example.com/js)

I http://example.com/js/oldfilename.js

zu http://example.com/js/newfilename.js

Mit diesem Code umleiten möchten, die Umleitung funktioniert:

RewriteEngine On 
RewriteRule ^oldfilename.js$ newfilename.js [L] 

Aber Die URL wird nicht neu geschrieben. Wenn ich [L] zu [L,R=301] ändere, wird die URL neu geschrieben, aber ist gebrochen. Die neu geschriebene URL scheint der HTTP-Host zu sein (http://example.com), gefolgt vom absoluten Pfad zu der Datei im Dateisystem.

Antwort

0

Sie benötigen eine externe Umleitung und geben Sie die Basis zum Umschreiben auszuführen:

RewriteEngine On 
RewriteBase "/path/to/files/" 
RewriteRule ^oldfilename\.js$ newfilename.js [L,R=301] 

Es wäre aber viel einfacher sein, einfach ein Alias in der http-Host-Konfiguration zu definieren:

Alias /path/to/oldfilename.js /path/to/newfilename.js 

Im Allgemeinen sollten Sie immer bevorzugen, um solche Regeln innerhalb der realen Host-Konfiguration statt 01 zu platzierenStyle-Dateien. Diese Dateien sind notorisch fehleranfällig, schwer zu debuggen und verlangsamen den HTTP-Server, oft umsonst. Sie sind nur für Situationen zur Verfügung gestellt, in denen man nicht Zugriff auf die Host-Konfiguration (lesen Sie: wirklich günstige Hosting-Provider) oder wenn eine Anwendung muss schreiben eigene Regeln zum Umschreiben (was ist eine Sicherheit Albtraum sowieso ...).