Sie sind nicht angemeldet.

Lieber Besucher, herzlich willkommen bei: GentooForum.de. Falls dies Ihr erster Besuch auf dieser Seite ist, lesen Sie sich bitte die Hilfe durch. Dort wird Ihnen die Bedienung dieser Seite näher erläutert. Darüber hinaus sollten Sie sich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutzen Sie das Registrierungsformular, um sich zu registrieren oder informieren Sie sich ausführlich über den Registrierungsvorgang. Falls Sie sich bereits zu einem früheren Zeitpunkt registriert haben, können Sie sich hier anmelden.

1

03.12.2008, 20:21

[Apache] Weiterleitung bei "Deny from all"

Hi,

ich bin dabei diesen Eintrag aus den Security Tips von Apache umzusetzen:
http://httpd.apache.org/docs/2.2/misc/se…tectserverfiles

apache config:

Quellcode

1
2
3
4
<Directory />
     Order Deny,Allow
     Deny from all
</Directory> 


Quellcode

1
2
3
<FilesMatch "^index\.php$">
                Allow from all
</FilesMatch>


Laut Directory Direktive sind nun die Aufrufe http://<HOST> oder http://<HOST>/ verboten. D.h. meine Seite wird nur über http://<HOST>/index.php angezeigt

Weiss Jemand wie ich .../ auf .../index.php weiterleiten kann? Meine Versuche mit RewriteRule scheitern. Es sieht so aus, als ob die DENY Regel vor dem RewriteRule greift.

Gruß,
PhOeniX
"Show me a sane man and I will cure him for you."

Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von »phoen1x« (06.12.2008, 17:59)


2

04.12.2008, 08:29

Habe das hier mal mit index.html gemacht, sollte mit index.php aber ja keinen Unterschied geben ...

Quellcode

1
2
3
4
5
6
7
8
9
10
11
<Directory /var/www/localhost/htdocs/>
    <FilesMatch "^index\.html$">
        Order Deny,Allow
        Allow from all
    </FilesMatch>
</Directory>

<Directory /var/www/localhost/htdocs/>
    Order Deny,Allow
    Deny from all
</Directory>


Beachte bitte das <Location> sich auf eine URL bezieht und <Directory> auf ein Verzeichnis deines Systems. In deinem Beispiel würgst du mit <Directory /> alles ab, was sich unter dem /-Verzeichnis auf deiner Platte befindet.

IMHO ist das vermutlich nicht in deinem Sinn, oder?
http://www.dyle.org
IM-Account (Jabber!) sind auf meiner HP ...
There is no place like /home

http://www.gentooforum.de
http://www.gentoofreunde.org

<div>how to annoy a web developer?</span>

3

06.12.2008, 17:46

Hi dyle,

ich denke Deine 2 Directory Direktiven lassen sich so zusammenfassen:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
<Directory "/var/www/localhost/htdocs/">
      RewriteEngine on
      RewriteBase /
      RewriteRule ^$ /myRedirectSite.php
      Options -ExecCGI -Indexes +FollowSymLinks

      Order Deny,Allow
      Deny from all
      <FilesMatch "^myRedirectSite\.php$">
            Order Deny,Allow
            Allow from all
      </FilesMatch>
</Directory>


Der Zugriff auf die myRedirectSite.php funktioniert. Jedoch klappt die "Weiterleitung" von / auf /myRedirectSite.php klappt nicht. Da der Zugriff auf das Directory in Zeile 8 verweigert wird. Wie kann ich diese Direktive überschreiben?
"Show me a sane man and I will cure him for you."

4

07.12.2008, 23:26

Müsste es nicht so heißen?

Quellcode

1
RewriteRule ^/$ /myRedirectSite.php


Eventuell könnte auch ein [PT] als Option für die RewriteRule helfen.

mfg pyjo

5

08.12.2008, 00:28

Hi pyjo,

in allen Tutorials die ich gelesen habe schreib man

Quellcode

1
RewriteRule ^/$ /myRedirectSite.php


wie der Lookup von Apache funktioniert weiss ich noch nicht genau. Muss wohl noch ein wenig Doku lesen...

Fakt ist jedoch, dass bei meinen Tests ^/$ dass selbe bewirkt hat wie ^$. Beides funktioniert, wenn ich die Zeile 8 auf Allow setze. Bin schon fast am überlegen ^/?$ zuschreiben.

@letzter Post:
Eventuell könnte auch ein [PT] als Option für die RewriteRule helfen.
Das mit dem [PT] verstehe ich nicht ganz, kannst Du mir einen Code-Snipe schreiben.

Danke,
PhOeniX
"Show me a sane man and I will cure him for you."

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »phoen1x« (08.12.2008, 00:37)


6

08.12.2008, 19:30



Eventuell könnte auch ein [PT] als Option für die RewriteRule helfen.
Das mit dem [PT] verstehe ich nicht ganz, kannst Du mir einen Code-Snipe schreiben.

Danke,
PhOeniX

Quellcode

1
RewriteRule ^/$ /myRedirectSite.php [PT]

PT steht für "path through", das bedeutet dass das Ergebnis der "Umschreibung" an alle folgenden Handler (Rewrite Engine, mod Alias, mod JK usw.) weitergegeben wird.

Du könntest auch [R] versuchen, das erzeugt einen Clientseitigen Redirect (ähnlich wie RedirectPermanent) und sollte damit eventuell verhindern, dass der Deny vorher zum zuschlag kommt.

Wenn alles fehl schlägt kannst du auch was komplett anderes versuchen:

Quellcode

1
RewriteRule !^(/|/myRedirectSite.php)$ /myRedirectSite.php

Damit sollten alle aufrufe außer auf / und /myRedirectSite.php auf die /myRedirectSite.php umgeleitet werden.

@see http://httpd.apache.org/docs/1.3/mod/mod…tml#RewriteRule

mfg pyjo

7

08.12.2008, 21:34

@pyjo: Hast Du Deine RewriteRule's auch im Apache getestet? Bei mir Kommt auf jeden Fall immer noch 403 Forbidden.

Zumindest habe ich mittlerweile einen Workaround gefunden:
  1. Subdomain http://web.mydomain.de
  2. Redirect permanent von http://www.mydomain.de auf http://web.mydomain.de/index.php
Zwar nicht elegant, aber reicht fürs erste. Wär schön wenn noch jemand eine bessere Lösung posten könnte.

Danke fürs helfen,
PhOeniX
"Show me a sane man and I will cure him for you."

8

09.12.2008, 18:31

@pyjo: Hast Du Deine RewriteRule's auch im Apache getestet? Bei mir Kommt auf jeden Fall immer noch 403 Forbidden.
noe, hab ich nicht ^^ hast du bei der letzten Regel denn auch daran gedacht, das "Order Deny, Allow" und "Deny from all" zu entfernen? Sonst wird die letzte Regel wohl niemals greifen können ^^

mfg pyjo

9

09.12.2008, 21:25


hast du bei der letzten Regel denn auch daran gedacht, das "Order Deny, Allow" und "Deny from all" zu entfernen? Sonst wird die letzte Regel wohl niemals greifen können ^^

Ne, auf die Idee bin ich noch nicht gekommen. Danke!?! :thumbup: Lies einfach mal den 3 Post von oben, also einen Post über Deinem Ersten ;)
"Show me a sane man and I will cure him for you."

10

09.12.2008, 22:19



hast du bei der letzten Regel denn auch daran gedacht, das "Order Deny, Allow" und "Deny from all" zu entfernen? Sonst wird die letzte Regel wohl niemals greifen können ^^

Ne, auf die Idee bin ich noch nicht gekommen. Danke!?! :thumbup: Lies einfach mal den 3 Post von oben, also einen Post über Deinem Ersten ;)
öhm, ich glaub du hast mich da etwas falsch verstanden.

Quellcode

1
2
3
4
5
6
7
8
9
<Directory "/var/www/localhost/htdocs/">
	RewriteEngine on
	RewriteCond %{REQUEST_URI} !^/foobar.php.*$
	RewriteRule !^/foobar.php.*$ /foobar.php
	
	DirectoryIndex foobar.php

	      Options -ExecCGI -Indexes +FollowSymLinks
</Directory>

Die Rewrite Regel ist getestet und leitet alle Anfragen an die foobar.php weiter ;)

Oder Alternativ mit 403 Forbidden Meldung:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
<Directory "/var/www/localhost/htdocs/">
	RewriteEngine on
	RewriteCond %{REQUEST_URI} !^/$
	RewriteCond %{REQUEST_URI} !^/foobar.php.*$
	RewriteRule !^/foobar.php.*$ /foobar.php [F]
	DirectoryIndex foobar.php
	
	DirectoryIndex foobar.php

	      Options -ExecCGI -Indexes +FollowSymLinks
</Directory>

Funktioniert ebenfalls :)

mfg pyjo