2016-12-21 2 views
0

Ich habe eine. Htaccess-Datei in meinem Server, um meine Subdomain Website Index-Ordner zu veröffentlichen. Allerdings kann nach der Umleitung, CSS, JS, IMG-Datei alle nicht geladen werden.
Wie es zu beheben?htaccess Redirect-Index zu öffentlichen ignorieren Css img und js

RewriteEngine on 
RewriteCond %{HTTP_HOST} ^www\.subdomain.domain\.com.sg$ 
RewriteRule ^/?$ "http\:\/\/subdomain.domain\.com.sg\/" [R=301,L] 

DirectoryIndex public/index.php 

Edited: Ich habe meine .htaccess-Datei, um das Update. Die Indexdatei wird korrekt geladen, aber kann ich die "public" von der URL entfernen?

RewriteEngine on 
RewriteCond %{HTTP_HOST} ^www\.subdomain.domain\.com.sg$ 
RewriteRule ^/?$ "http\:\/\/subdomain.domain\.com.sg\/" [R=301,L] 

RewriteRule ^index.php$ subdomain.domain.com.sg/public/index.php [R=301,L] 

sorry ich bin neu in Apache Umgebung

+0

Dieser Code erstellt eine endlose Umleitungsschleife. Sie leiten auf genau die URL um, die Sie angefordert haben. – arkascha

+0

Ich wollte nur die subdomain.domain.com.sg/index.php zu subdomain.domain.com.sg/public/index.php umleiten. –

+0

Ah, Sie haben den Code geändert, ich nehme an, Sie tun _not_ erhalten eine endlose Umleitung any länger? – arkascha

Antwort

0

Mit Öffentlichkeit "kann ich die entfernen "" aus der URL?" Sie fragen wahrscheinlich, ob Sie eingehende Anfragen intern in den Ordner /public umschreiben können. Sicher kannst du. Frage ist, wenn Sie wollen nur, dass index.php Datei umgeleitet werden oder alle Anfragen darunter. Beachten Sie, dass diese Regeln ein internes Umschreiben implementieren, tun so nicht die URL ändern, sichtbar im Browser, die am wahrscheinlichsten ist, was Sie wollen:

# http://subdomain.example.com/index.php => /public/index.php 
RewriteRule ^/?index.php$ /public/index.php [L,QSA] 

Ein allgemeinerer Ansatz:

# http://subdomain.example.com/foo/bar => /public/foo/bar 
RewriteRule ^/?(.*)$ /public/$1 [L,QSA] 

Wenn Sie in Ihrer HTTP-Serverhostkonfiguration als Indexdokument index.php registrieren, können Sie das sogar aus der URL löschen. Dokumentation: https://httpd.apache.org/docs/current/mod/mod_dir.html#directoryindex:

# http://subdomain.example.com/ => /public/index.php 
DirectoryIndex index.php 

Und ein allgemeiner Hinweis: Sie sollten immer bevorzugen solche Regeln in der http-Server Host-Konfiguration mit .htaccess Style-Dateien anstatt zu platzieren. Diese Dateien sind notorisch fehleranfällig, schwer zu debuggen und verlangsamen den Server wirklich. Sie werden nur als letzte Option für Situationen angeboten, in denen Sie keine Kontrolle über die Host-Konfiguration haben (lesen Sie: wirklich günstige Hosting-Service-Provider) oder wenn Sie eine Anwendung haben, die eigene Schreibregeln schreibt (was ein offensichtlicher Sicherheitsalarm ist)).