Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

rewrite auf einen public ordner

Empfohlene Antworten

Veröffentlicht

Hallo!

Wir haben firmenintern ein kleines eigenes framework geschrieben, dass bei unseren Kunden auch auf Hosting Paketen eingesetzt wird. Damit auch dort nicht alles auf dem Root-Verzeichnis, sprich von außen zugänglich liegt (templates, etc.) haben wir jetzt einen public ordner eingeführt, auf den sämtliche Anfragen umgeleitet werden, wo also alle öffentlichen Daten liegen (Bilder, index.php usw.). Das Ganze funktioniert allerdings noch nich perfekt.

Greife ich mit

www.domain.de/ordner/ auf einen ordner zu funktioniert alles wunderbar. Lasse ich allerdings den / weg, www.domain.de/ordner wird daraus in der adresszeile www.domain.de/public/ordner/

Weiß jemand woran das liegt?

Code:

RewriteEngine On

RewriteRule ^(.*)\.html$ /index.php/$1 [L]

RewriteRule ^/index.html$ / [R=301,QSA,L]

# public Ordner

RewriteCond %{REQUEST_URI} !^/public/

RewriteRule ^(.*)$ /public/$1 [L]

gruß

Jan

Greife ich mit

www.domain.de/ordner/ auf einen ordner zu funktioniert alles wunderbar. Lasse ich allerdings den / weg, www.domain.de/ordner wird daraus in der adresszeile www.domain.de/public/ordner/

Weiß jemand woran das liegt?

Ist das nicht immer so, wenn du auf einen Ordner zugreifst? Egal mit oder ohne mod_rewrite.

Also ich würd es nicht unbedingt als normal bezeichenen dass da auf einmal public vor steht ...

Also ich würd es nicht unbedingt als normal bezeichenen dass da auf einmal public vor steht ...

steht aber genau so in der RewriteCond:

RewriteCond %{REQUEST_URI} !^/public/

alles was nicht /public/ ist, wird /public/<und dann dein ordner>

s'Amstel

steht aber genau so in der RewriteCond:

alles was nicht /public/ ist, wird /public/<und dann dein ordner>

s'Amstel

Jojo, allerdings steht da nichts von einem redirect drin, das ist eine rule zum internen umschreiben, und eben das funktioniert in dem Fall nicht wo der / am Ende nicht angegeben ist ...

Jojo, allerdings steht da nichts von einem redirect drin ...

Wird da überhaupt ein redirect ausgeführt? LiveHTTPHeaders + Firefox zeigen dir, was der Server da alles tut (bzw. an den Client schickt).

Es steht auf jeden Fall kein 301 drin ... alles sehr merkwürdig ...

dreh mal das RewriteLog auf und stell RewriteLogLevel auf 9 ;)

s'Amstel

127.0.0.1 - - [28/Sep/2007:16:06:07 +0200] [handy/sid#e24d98][rid#f05dd0/initial] (4) [perdir D:/workspace/handy/] RewriteCond: input='/forum' pattern='!^/public/' => matched

127.0.0.1 - - [28/Sep/2007:16:06:07 +0200] [handy/sid#e24d98][rid#f05dd0/initial] (2) [perdir D:/workspace/handy/] rewrite 'forum' -> '/public/forum'

127.0.0.1 - - [28/Sep/2007:16:06:07 +0200] [handy/sid#e24d98][rid#f05dd0/initial] (1) [perdir D:/workspace/handy/] internal redirect with /public/forum [INTERNAL REDIRECT]

Ich würde sagen, dass die Regel das macht, was sie soll. Der Unterschied zwischen 'ordner' und 'ordner/' kommt vielleicht durch den DirectoryIndex.

<Vermutung>

Möglicherweise interpretiert der Apache den Slash am Ende so, dass der DirectoryIndex-Direktive Anwendung findet.

Ist keiner vorhanden, dann wird davon ausgegangen, dass es eine Datei ist. Diese wird dann entsprechend der Regel umgemapt.

Probier es mal ohne DirectoryIndex. Würde mich mal interessieren.

</Vermutung>

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.