.htaccess zum umleiten von Stamm-URL mit Unterverzeichnis Dateien umschreiben zu reinigen-URL UND nicht auf subdomains?
Noch nicht in der Lage zu finden, was ich Suche in .htaccess-QA ist hier, so verzeihen Sie mir, wenn dies ist ein doppelter. Ich habe Folgendes problem mit einer statischen HTML-Seite. Die Struktur ist unten.
Meine relative Pfade in info.html
und contact.html
verwenden /home/css/style.css
während index.html
verwendet /css/style.css
. Danke für die Hilfe.
Root
- .htaccess
↳ Drupal
- .git
↳ Dev
- .git
↳ Home
- .htaccess
- .git
- css
- js
- img
- info.html
- contact.html
- index.html
Ziel
Dev.example.com
um alle Dateien aus/Dev
example.com
um alle Dateien ausexample.com/home
example.com/info
umleiten vonexample.com/home/info.html
.example.com/contact
umleiten vonexample.com/home/contact.html
.
, Was ich bisher ausprobiert habe
in root .htaccess
# Set a default home directory, (this subfolder always loads)
# RewriteEngine On
# RewriteCond %{THE_REQUEST} ^GET\ /home/
# # RewriteCond %{HTTP_HOST} ^(www\.)?example.com$
# RewriteRule ^home/(.*) /$1 [L,R=301]
# RewriteCond %{HTTP_HOST} ^(www\.)?example.com$
# RewriteRule !^home/home%{REQUEST_URI} [L]
Options -Indexes
ErrorDocument 404 /missing.html
# compress text, html, javascript, css, xml:
AddOutputFilterByType DEFLATE text/html text/plain text/xml application/xml application/xhtml+xml text/javascript text/css application/x-javascript
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4.0[678] no-gzip
BrowserMatch bMSIE !no-gzip !gzip-only-text/html
<FilesMatch "\.(htm|html|css|js)$">
AddDefaultCharset UTF-8
</FilesMatch>
RedirectMatch 404 "(?:.*)/(?:\.git|file_or_dir)(?:/.*)?$"
# remove .html from html file names
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule .*[^/]$ %{REQUEST_URI}/[L,R=301]
RewriteCond %{REQUEST_FILENAME}.html -f
RewriteRule ^(.+)/$ $1.html [L]
Und in Root/drupal .htaccess
default drupal stuff
Nächsten Antworten, die ich finden konnte, ALSO:
- .htaccess rewrite umleiten root-URL mit Unterverzeichnis
- Ändern Sie alle meine website-links: was ist der beste Weg?
- Umleitung der root der site Unterverzeichnis zu verwenden .htaccess
- htaccess Unterverzeichnis Wurzel-URLS zu
EDIT: landete ich im folgenden, teilweise, den Rat gegeben, weil ich separates git-repos pro Unterverzeichnis. Danke @Jon Lin und @tttony!
Neues problem: Meine .htaccess im root nicht lassen Sie mich sehen, meine drupal-installation in einem Unterverzeichnis.
Drupal.examples.com
verwendet, alle drupal-Dateien aus/Drupal
**
Du musst angemeldet sein, um einen Kommentar abzugeben.
Die einfachste Sache zu tun ist, bei weitem, ist einfach zu machen
home
document root und nicht Sorge haben müssen, dass ein Unterverzeichnis.Aber für das, was Sie haben zu arbeiten, das erste, was Sie tun müssen, ist die route alles zu
/home
und nicht nur die/
Anfrage:Zweitens, in diesem Zustand:
wird immer scheitern, wenn Sie einen trailing slash an, da werde es versuchen, zu prüfen, für Dateien, die so Aussehen:
Versuchen Sie dies:
RewriteCond %{REQUEST_URI} !^/(staging|other_subdomain|subdomain2)
) oder Sie können hinzufügen !-f und !-d-Prüfungen gegen%{REQUEST_FILENAME}
. Die Bedingungen müssen gehen über denRewriteRule ^(.+)/$ $1.html [L]
Regel.Ich habe diese Probleme mit sub-Ordner, können Sie versuchen, verwenden Sie RewriteBase in Ihrer Wurzel .htaccess
Aber ich fand, dass es besser ist die Verwendung von nur einem .htaccess-Datei im root-Ordner