2017-10-05 3 views
0

Ich pflege eine Website, die jemand anderes geschrieben hat. Er verwendete den absoluten Pfad in html, um Assets-Dateien anzufordern, und er nahm an, dass das Projekt immer im Stammverzeichnis der Domäne installiert wurde.Wie verwende ich Apache, um Dateien in andere Verzeichnisse umzuleiten?

Jetzt teste ich die Website; Ich habe das Projekt in einem Unterverzeichnis installiert. Und ich möchte Dateien, die mit bestimmten Zeichen beginnen, in einen Unterordner umleiten.

Zum Beispiel schrieb er so etwas wie dieses

<img src="/en/wp-content/themes/....."> 

So, jetzt der Server startet Dateien an der Wurzel wie example.com/en/wp-content/....

Suche ich das Projekt auf /foo/en installiert, example.com/foo/en. Ich möchte .htaccess verwenden, um URLs umzuleiten, die mit /en/wp-content/themes zu /foo/en/wp-content/themes beginnen. Was soll ich machen?

Dies ist, wie ich es geschrieben habe:

RewriteEngine On 

RewriteRule ^en/wp-content/themes/(.*)$ /foo/en/wp-content/themes/$1 

Aber es funktioniert nicht ....

+0

Ist mod-rewrite aktiviert und darf htaccess overrider verwendet werden? – Webdesigner

+0

Ja, als ich etwas geschraubt habe, hat die Website nicht mehr funktioniert (nicht erreichbar). –

+0

Serverversion: Apache/2.4.7 (Ubuntu). Sie sind der einzige Inhalt in meinem .htaccess –

Antwort

0

ich gerade nur ein wenig die Linie ändern würde sicher sein, dass dies nicht stört Zusammenarbeit mit anderen .htaccess-Dateien [L] oder [END]:

RewriteEngine On 
RewriteRule ^/?en/wp-content/themes/(.*)$ /foo/en/wp-content/themes/$1 [L] 

[L] bedeutet Last https://httpd.apache.org/docs/2.4/rewrite/flags.html#flag_l

[END] https://httpd.apache.org/docs/2.4/rewrite/flags.html#flag_end

+0

Ich wundere mich, wenn die URL example.com/en/... ist, wird die .htaccess im root übernehmen? oder foo/de? Wenn ich URL wie neu schreiben möchte, sollte ich .htaccess im root oder/foo/en erstellen? –

Verwandte Themen