Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
mod_rewrite Ordner simulieren [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr

- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
mod_rewrite Ordner simulieren


 
bloodyorchid
25-05-2010, 20:29 
 
Servus,
ich hab nen kleinen Server auf 1&1 und versuche mich gerade vergeblichst an einem mod_rewrite.

auf einem Server habe ich mein Vorhaben schone erfolgreich folgendermaßen gelöst:


RewriteEngine On
RewriteRule ^([\w]+)$ index.php?site=$1
RewriteRule ^([\w]+)/([\w]+)$ index.php?site=$1&sub=$2


aber dieser dusselige 1&1 Server macht das nicht mit.

Die 1. Ebene habe ich schon so gelöst:

RewriteRule ^(.*)/$ /index.php?site=$1


Nun mein Problem. Ich will jeweils mit Ending-Slash und ohne haben. Um Tippfehler zu vermeiden. Andererseits bekomme ich es für eine weitere unterebene absolut nicht hin. Alá /var1/var2/ => index.php?site=var1&sub=var2

Hoffe ihr könnt mir helfen :)

 
AmicaNoctis
25-05-2010, 20:39 
 
Hallo,

das reicht doch auch. Die originale Adresse findest du in $_SERVER["REQUEST_URI"], egal wieviele Pfadebenen sie hatte. Damit ersparst du dir, das per mod_rewrite einzeln abzuhandeln.

Gruß,

Amica

 
bloodyorchid
25-05-2010, 20:41 
 
Du meinst quasi das ich die unterbenen dann raus explode?

 
AmicaNoctis
25-05-2010, 20:49 
 
Du meinst quasi das ich die unterbenen dann raus explode?

Genau. Und für mod_rewrite brauchst du nur noch
RewriteRule !^index\.php - [C]
RewriteRule ^.*$ index.php [L]

 
bloodyorchid
25-05-2010, 20:52 
 
RewriteRule !^index\.php - [C]
RewriteRule ^.*$ index.php [L]


= Error 500 internal server error :P

Das ist ja was mich so piekst an 1&1

EDIT:
Das Script von oben würde durchaus reichen. Da ich nur bis eine weitere Unterebene gehe. Aber neihein ^_^

 
AmicaNoctis
25-05-2010, 20:55 
 
RewriteEngine On
hast du aber gesetzt, oder? Unterstützt der Webspace dort überhaupt mod_rewrite?

 
bloodyorchid
25-05-2010, 20:56 
 
Klar hab ich es gesetzt. So doof bin ich ja nun auch wieder nich xD
Und ja er unterstützt es. Sonst würde es ja mit
RewriteRule ^(.*)/$ /index.php?site=$1
nicht klappen.

 
AmicaNoctis
25-05-2010, 21:04 
 
Klar hab ich es gesetzt. So doof bin ich ja nun auch wieder nich xD
Und ja er unterstützt es. Sonst würde es ja mit
RewriteRule ^(.*)/$ /index.php?site=$1
nicht klappen.

Dass das funktioniert ist aber nur Glück. Ohne das offensichtlich gesetzte Umleitungsmaximum, würde das sofort scheitern. Trotzdem ergibt es keinen Sinn:

http://example.com/abc/def/ghi/ wird zu
http://example.com/index.php?site=abc/def/ghi/ wird zu
http://example.com/index.php?site=index.php?site=abc/def/ghi/ wird zu
http://example.com/index.php?site=index.php?site=index.php?site=abc/def/ghi/ wird zu


bis das Umleitungsmaximum sagt „nu is Schluss!“

 
bloodyorchid
25-05-2010, 21:06 
 
Da magst du recht haben. 1&1 beschreibt selbst in der Hilfe diesen Weg:

Statt http://foo.bar/user.php?id=baz hätte ich gerne etwas wie http://foo.bar/user/baz

.htaccess

Options -MultiViews
RewriteEngine on
RewriteCond %{REQUEST_URI} user/(.*)$
RewriteRule user/(.*)$ /user.php?id=$1


Alle Zeitangaben in WEZ +2. Es ist jetzt 19:35 Uhr.