Hal: mod_rewrite

Hallo,

mal wieder jemand mit einem mod_rewrite Problem.

Ich möchte url suchmaschinen- und lesefreundlich aussehen lassen. Aufrufe wie z.B. www.domain.de/test sollen die url als Parameter an die /index.php übergeben, wo sie dann mit $_SERVER['REQUEST_URI'] ausgelesen und anschließend verarbeitet werden.

In der httpd.conf meines Servers habe ich dann Folgendes stehen:

<Directory />
RewriteBase /
RewriteRule ^(.*)$ index.php [QSA,L]
</Directory>

Das funktioniert nur wenn die urls mit www.domain.de/index.php beginnen, sprich www.domain.de/index.php/test. Was muss ich tun, damit's auch ohne "index.php" funktioniert, also www.domain.de/test?

  • Hal.
  1. Hi,

    Das funktioniert nur wenn die urls mit www.domain.de/index.php beginnen,

    welche Bedeutung haben "funktioniert" und "funktioniert nicht", und auf welche Weise ermittelst Du den jeweiligen Zustand?

    Cheatah

    --
    X-Self-Code: sh:( fo:} ch:~ rl:| br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
    X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
    1. Hi,

      »» Das funktioniert nur wenn die urls mit www.domain.de/index.php beginnen,

      welche Bedeutung haben "funktioniert" und "funktioniert nicht", und auf welche Weise ermittelst Du den jeweiligen Zustand?

      Cheatah

      Wie ich an Dennis schrieb:

      Ein Testlink in der index.php in der Form

      <a href="/index.php/test/">Test</a>

      übergibt diese url an die index.php. Mit

      echo $_SERVER['REQUEST_URI'];

      kriege ich dann diese Ausgabe:

      /index.php/test/

      Aber so sollte es natürlich nicht aussehen.

      • Hal.
  2. Hi Hal,

    Das funktioniert nur wenn die urls mit www.domain.de/index.php beginnen, sprich www.domain.de/index.php/test. Was muss ich tun, damit's auch ohne "index.php" funktioniert, also www.domain.de/test?

    Das klingt eher so, als würde es gar nicht funktionieren! Denn das was du da beschreibst klingt nach PathInfo, einem Standardverfahren von Apache, dass einen Anhang in der von dir genannten Form in der Umgebungsvariable PATH_INFO an Scripte zur Verfügung stellt.

    Hast du schon mal probiert, die RewriteEngine überhaupt erst mal anzuschalten?

    Viele Grüße,
      ~ Dennis.

    1. Hast du schon mal probiert, die RewriteEngine überhaupt erst mal anzuschalten?

      Addendum:
      Und dann sollte er die Endlosschleife behandeln, die er sich erzeugt hat.
      Eine Rewrite Condition wäre angesagt.

      mfg Beat

      --
      ><o(((°>           ><o(((°>
         <°)))o><                     ><o(((°>o
      Der Valigator leibt diese Fische
      1. »» Hast du schon mal probiert, die RewriteEngine überhaupt erst mal anzuschalten?

        Addendum:
        Und dann sollte er die Endlosschleife behandeln, die er sich erzeugt hat.
        Eine Rewrite Condition wäre angesagt.

        mfg Beat

        Danke, diese beiden Sachen waren's. RewriteEngine on und Conditions. Es funktioniert mit:

        RewriteEngine on
        RewriteBase /
        RewriteCond %{REQUEST_FILENAME} !-d
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteRule ^(.*)$ index.php [QSA,L]

        • Hal.
    2. Das klingt eher so, als würde es gar nicht funktionieren! Denn das was du da beschreibst klingt nach PathInfo, einem Standardverfahren von Apache, dass einen Anhang in der von dir genannten Form in der Umgebungsvariable PATH_INFO an Scripte zur Verfügung stellt.

      Funktionieren tut es schon wie von mir beschrieben. Ein Testlink in der index.php in der Form

      <a href="/index.php/test/">Test</a>

      übergibt diese url an die index.php. Mit

      echo $_SERVER['REQUEST_URI'];

      kriege ich dann diese Ausgabe:

      /index.php/test/

      Nur wie gesagt, so sollte es natürlich nicht aussehen. Es wird sicherlich auch mit PATH_INFO gehen, aber da liegt ja nicht das Problem.

      Hast du schon mal probiert, die RewriteEngine überhaupt erst mal anzuschalten?

      Habe ich, macht aber keinen Unterschied.

      Diese mod_rewrite Sachen können einen echt in den Wahnsinn treiben.

      • Hal.