.htaccess - Konfikt mod_rewrite und mod_speling in Drupal 7.x
am 01.07.2015 - 08:11 Uhr in
Hallo Forum,
habe hier ein kleines Problem, bei welchem Ihr mir sicher wieder helfen könnt.
Ich habe meine Webseite http://www.schiraumtechnik.de mit Drupal 7 neu aufgesetzt.
Das Downloadverzeichnis für Datenblätter liegt direkt im Rootverzeichnis, da ich Links zu einzelnen Datenblättern per E-Mail verschicke ( www.schiraumtechnik.de/Datenblaetter/Datenblatt_Schuhtrockner.pdf ).
Soweit so gut.
Das Problem ist nun, dass das Verzeichnis früher /datenblaetter hieß und heute /Datenblaetter heist.
Bei der alten Webseite war das auch kein Problem, da (nach meiner Erkenntnis) das Modul mod_spelling dafür gesorgt hat, dass die Groß- und Kleinschreibung sowie kleine Tippfehler nicht zu einem 404 nicht gefunden führte.
Bei meiner Drupal Installation scheinen aber folgende Einträge in der .htaccess dieses zu verhindern:
# Pass all requests not referring directly to files in the filesystem to
# index.php. Clean URLs are handled in drupal_environment_initialize().
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !=/favicon.ico
RewriteRule ^ index.php [L]
Kommentiere ich diese Zeilen aus, ist der Zugriff auf die Datenblaetter wieder in Ordnung, jedoch kann ich mich dann nicht mehr unter www.schiraumtechnik.de/user einloggen.
Was ist zu tun?
Habe als schnelle Lösung ein Redirect permanent "/datenblaetter/" "/Datenblaetter/" in die .htaccess eingefügt. Damit werden allerdings keine Tippfehler oder Fehler in der Art www.schiraumtechnik.de/datenBlaetter/datenblatt_schuhtrockner.pdf (also Groß- und Kleinschreibung) erkannt.
Ich hoffe auf Eure Hilfe
Michael
- Anmelden oder Registrieren um Kommentare zu schreiben
das liegt am Server
am 01.07.2015 - 08:27 Uhr
bzw. dem Betriebssystem.
Es gibt einen guten Grund, warum die Verzeichnise meist nur kleingeschrieben werden.
Im Gegensatz zu Windows, kann Unix die Zeichen unterscheiden.
Da aber über 90% aller WEB-Server UNIX/LINUX-Maschinen sind, oft aber auf Windows entwickelt wird, ist es ratsam, keine Großbuchstaben zu verwenden, da Windows sie nur darstellen, nicht aber unterscheiden kann, UNIX/LINUX sie aber als unterschiedliche Zeichen erkennt.
Entweder du sorgst dafür, dass eben immr, und an jeder Stelle das große D in Links verwendet wird, oder du änderst den Pfadnamen wieder in Kleinschreibung.
Fällt beides aus, bleibt dir kaum etwas Anderes als der rewrite in der .htaccess.
Grüße
Ronald
Vielen Dank für die deine
am 01.07.2015 - 10:38 Uhr
Vielen Dank für deine Antwort. Dass das am Betriebssystem liegt, ist mir bekannt.
Ich suche nach einer Lösung, die die Drupal Rewrite Regel
# Pass all requests not referring directly to files in the filesystem to
# index.php. Clean URLs are handled in drupal_environment_initialize().
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !=/favicon.ico
RewriteRule ^ index.php [L]
erst anschlagen lässt, nachdem mod_spelling nicht gegriffen hat (ich hoffe, ich habe mich verständlich ausgedrückt).
Leider bin in bei .htaccess nicht so auf Draht.
Michael
Michel
Eine kleine Google Suche nach
am 02.07.2015 - 15:52 Uhr
Eine kleine Google Suche nach den Themen mod_rewrite mod_spelling drupal brachte mir den folgenden Issue auf drupal.org:
https://www.drupal.org/node/268561#comment-6105220
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !.*\.(jpg|gif|png|JPG|GIF|PNG|pdf|PDF)
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]
Du kannst in der Rewriterule auch bestimmte Dateitypen vom der Rule auschließen - dies wäre in deinem Fall wohl mal ein Versuch wert. Google liefert hier aber auch weitere Ergebnisse, die du mal durcharbeiten müsstest.
SteffenR
http://www.twitter.com/_steffenr
Drupal-Initiative e.V.
Super
am 03.07.2015 - 07:34 Uhr
das scheint die Lösung zu sein. Danke fürs finden!Ich wollte das Verzeichnis von der Regel ausnehmen, aber die Dateitypen... Genial
Michael
Michel
Problem mit IMCE
am 08.10.2015 - 07:08 Uhr
Eine kleine Google Suche nach den Themen mod_rewrite mod_spelling drupal brachte mir den folgenden Issue auf drupal.org:
https://www.drupal.org/node/268561#comment-6105220
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !.*\.(jpg|gif|png|JPG|GIF|PNG|pdf|PDF)
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]
Du kannst in der Rewriterule auch bestimmte Dateitypen vom der Rule auschließen - dies wäre in deinem Fall wohl mal ein Versuch wert. Google liefert hier aber auch weitere Ergebnisse, die du mal durcharbeiten müsstest.
SteffenR
Habe jetzt ein Problem mit folgender Zeile entdeckt:
RewriteCond %{REQUEST_URI} !.*\.(jpg|gif|png|JPG|GIF|PNG|pdf|PDF)
Diese Anweisung blockiert das Erstellen der verschiedenen Bildergrößen unter sites/default/files/styles durch IMCE.
Irgend eine Idee?
Michael
Michel
Michel schrieb Habe jetzt ein
am 21.10.2015 - 07:51 Uhr
Habe jetzt ein Problem mit folgender Zeile entdeckt:
RewriteCond %{REQUEST_URI} !.*\.(jpg|gif|png|JPG|GIF|PNG|pdf|PDF)
Diese Anweisung blockiert das Erstellen der verschiedenen Bildergrößen unter sites/default/files/styles durch IMCE.
Niemand eine Idee?
Habe im Moment leider nicht die Zeit, mich tiefgreifend mit dem Thema zu befassen und deshalb jpg aus der Regel entfernt.
Michael
Michel