PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr

PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr (https://www.php-resource.de/forum/)
-   ASP, PERL, CGI, C und alles andere (https://www.php-resource.de/forum/asp-perl-cgi-c-und-alles-andere/)
-   -   mod_rewrite Ordner simulieren (https://www.php-resource.de/forum/asp-perl-cgi-c-und-alles-andere/99583-mod_rewrite-ordner-simulieren.html)

bloodyorchid 25-05-2010 19:29

mod_rewrite Ordner simulieren
 
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:

HTML-Code:

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:
HTML-Code:

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 19: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 19:41

Du meinst quasi das ich die unterbenen dann raus explode?

AmicaNoctis 25-05-2010 19:49

Zitat:

Zitat von bloodyorchid (Beitrag 640558)
Du meinst quasi das ich die unterbenen dann raus explode?

Genau. Und für mod_rewrite brauchst du nur noch
Code:

RewriteRule !^index\.php - [C]
RewriteRule ^.*$ index.php [L]


bloodyorchid 25-05-2010 19:52

HTML-Code:

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 19:55

Code:

RewriteEngine On
hast du aber gesetzt, oder? Unterstützt der Webspace dort überhaupt mod_rewrite?

bloodyorchid 25-05-2010 19: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
HTML-Code:

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

AmicaNoctis 25-05-2010 20:04

URL entlinkt
 
Zitat:

Zitat von bloodyorchid (Beitrag 640567)
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
HTML-Code:

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 20: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
HTML-Code:

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



Alle Zeitangaben in WEZ +2. Es ist jetzt 21:49 Uhr.

Powered by vBulletin® Version 3.8.2 (Deutsch)
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.3.0
[c] ebiz-consult GmbH & Co. KG