Verzweiflung mit IIS + realurl + ISAPI_rewrite

  • spoof spoof
    T3PO
    0 x
    21 Beiträge
    0 Hilfreiche Beiträge
    27. 06. 2007, 16:05

    Hallo zusammen

    ich weiß, es gibt einige themen hier, die sich mit realurl und iis beschäftigen, aber irgendwie scheint jede lösung anders zu sein und keine bei mir zu funktionieren, hatte auch sonst noch nix damit zu tun.

    ich wäre sehr dankbar über eure hilfe.

    [b]Folgendes läuft:[/b]
    [i]- Typo3 4.0.2
    - IIS 6 (Windows 2003 Server)
    - realurl 1.1.3
    - ISAPI_rewrite Lite 2.11[/i]

    die testseite läuft unter einem virtuellen verzeichnis, sprich der link zur index.php lautet z.b. [i]http://irgendwas.de/meineseite/index.php[/i]

    es scheint mir so, als ob meine rewrite rules nicht richtig greifen. hier mal ein versuch von vielen, die ich im netz gefunden hab:

    RewriteRule ^/meineseite/(typo3/|typo3temp/|typo3conf/|t3lib/|tslib/|fileadmin/|uploads/)(.*) /$1$2 [L]RewriteRule /meineseite/(.*)\??(.*) /meineseite/index.php [I,L]

    die seite wird zwar rewrited, aber man landet immer auf der startseite und die grafiken / styles werden nicht angezeigt, obwohl die base-url gesetzt wurde

    [TS]config.tx_realurl_enable = 1
    config.baseURL = http://irgendwas.de/meineseite/
    config.prefixLocalAnchors = all
    [/TS]

    unabhängig von der extension-konfiguration zum auflösen der seiten wäre ich echt dankbar, wenn mir jemand nen tip geben könnte wie ich das ganze überhaupt mal zum laufen bringen kann.

    Timo


  • 1
  • spoof spoof
    T3PO
    0 x
    21 Beiträge
    0 Hilfreiche Beiträge
    02. 07. 2007, 11:22

    Mittlerweile funktioniert das generieren der Url ohne Probleme, auch wird alles richtig angezeigt. Problem ist aber immer noch dass er die angepassten Links nicht zurückübersetzen kann.

    Folgendes in meiner httpd.ini:

    RewriteRule ^/meineseite/(shop/|typo3/|typo3temp/|typo3conf/|t3lib/|tslib/|fileadmin/|uploads/)(.*) /irgendwas.de/$1$2 [L]RewriteRule /meineseite/(.*\.html)\??(.*) /meineseite/index.php [I,L]

    Folgendes im TypoScript:

    [TS]config.simulateStaticDocuments = 0
    config.tx_realurl_enable = 1
    config.baseURL = ..../meineseite/
    config.prefixLocalAnchors = all
    config.content_from_pid_allowOutsideDomain = 1[/TS]

    Unabhängig von der realurl-konfiguration in der localconf müsste ja wenigstens die extension die benötigten funktionen aufrufen um den link wieder in für typo3 aufzubereiten.

    Die Funktion, um ihn zu erzeugen, wird aufgerufen:

    1. class.tx_realurl_advanced.php -> function IDtoPagePath(&$paramKeyValues, &$pathParts)

    Die Funktion, um ihn wieder zurück umzuwandeln, wird nicht aufgerufen:

    1. class.tx_realurl_advanced.php -> function pagePathtoID(&$pathParts)

    Kann mir hier irgendjemand vll nen Tip geben??

  • Maxx Maxx
    Padawan
    0 x
    49 Beiträge
    0 Hilfreiche Beiträge
    03. 07. 2007, 11:14

    Hi,

    also in meiner httpd.ini steht:

    RewriteRule /typo3 /typo3/index_re.php
    RewriteRule (.*?)([0-9]*)(\.)([0-9]*)(\.html)(\??)(.*?) /index\.php\?id=$2&type=$4$7 [I]

    Und im Setup von Typo:
    config.simulateStaticDocuments = 1

    Mehr nicht! Auch kein realURL
    Das funzt prima.

    Ergebnis z.B.:
    http://domain/1528.0.html

  • spoof spoof
    T3PO
    0 x
    21 Beiträge
    0 Hilfreiche Beiträge
    03. 07. 2007, 11:21

    hallo maxx,

    danke für die antwort.

    simulateStaticURL's hatte ich am Anfang auch, allerdings will der kunde speaking url's, sprich simulateStaticURL bringt mich nicht wirklich weiter - deswegen realurl um links wie domain.de/web/information/produkte/meinprodukt.html zu bekommen.

  • Maxx Maxx
    Padawan
    0 x
    49 Beiträge
    0 Hilfreiche Beiträge
    03. 07. 2007, 11:32

    Ich kämpfe auch schon länger damit endlich mal speakingURLs hinzubekommen.
    Ich wechsel demnächst wohl auf den Apache unter Windows.
    Der IIS macht mir einfach zuviel Mist in Sachen PHP in letzter Zeit.
    Das hilft Dir wahrscheinlich wenig.
    Versuchs mal damit:

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

    Es gibt noch das hier:
    http://typo3.org/extensions/repository/view/jb_noindexphp/1.1.0/

    Das habe ich noch nicht getestet.

    Hier noch ein netter Wiki Eintrag:
    http://wiki.typo3.org/index.php/Windows#ISAPI_Rewrite

  • spoof spoof
    T3PO
    0 x
    21 Beiträge
    0 Hilfreiche Beiträge
    05. 07. 2007, 11:19

    ich hab keine möglichkeit, auf apache zu wechseln. deswegen muss ich mit iis auskommen.

    den wiki-eintrag hab ich mir auch schon einige male durchgelesen, werd aber nicht schlau daraus. hab den entsprechenden codeblock in der class.t3lib_div.php mal angeschaut, er scheint mir das richtige zurückzugeben - $retVal ist in meinem fall meineseite/index.php.

    die extension jb_noindexphp hab ich mir noch nicht angesehen. ist leider auch keine doku dabei und ich bezweifle dass es damit möglich ist auch andere extensions wie ttnews schön zu rewriten.

    ich weiß es liegt nur an ner kleinigkeit. aber ich finds nicht ...

    timo

  • SeveQ SeveQ
    R2-D2
    0 x
    101 Beiträge
    0 Hilfreiche Beiträge
    05. 07. 2007, 11:32

    Irgendwo musst du in den Rewrite Rules auch noch sagen, daß Parameter an die index.php weitergegeben werden sollen. Meine Rewrite Rules sehen so aus:

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

    Die 2. Zeile hängt alles, was nach .html kommt unverändert an die URL mit der index.php an. Beispiel:

    Vielleicht hilft das?

  • spoof spoof
    T3PO
    0 x
    21 Beiträge
    0 Hilfreiche Beiträge
    05. 07. 2007, 12:51

    Meine urls haben ja keine parameter nach .html
    z.B. meineseite/web/products/mein-produkt.html
    somit greift ja eigentlich meine regel korrekt.

    Hab mir folgenden Bug mal durchgelesen - [url]http://bugs.typo3.org/view.php?id=541#3173[/url]

    Ich denke da liegt das problem, weiß aber nicht obs von der rewrite-rule kommt oder typo-seitig ist.

    In $_SERVER findet sich nirgendswo der komplette, rewritete pfad ([i]meineseite/web/products/mein-produkt.html[/i]).

    geb ich allerdings diesen pfad in der funktion

    1. getIndpEnv($getEnvName)
    bei
    1. case 'REQUEST_URI':
    mal ganz blöd direkt übergebe, dann funktioniert alles und die seite wird korrekt geladen.

  • spoof spoof
    T3PO
    0 x
    21 Beiträge
    0 Hilfreiche Beiträge
    11. 07. 2007, 11:59

    ich bin jetzt soweit, dass es prinzipiell läuft.

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

    Diesem Bug zur Folge habe ich die Änderungen übernommen.
    [url]http://bugs.typo3.org/view.php?id=5578[/url]

    Problem ist nun, dass alle links zwar verarbeitet werden, aber immer nur die startseite angezeigt wird.

    Wenn $TYPO3_CONF_VARS['SYS']['requestURIvar'] gleich "/web/service.html" ist, dann wird dies auch an die nötigen funktionen übergeben, allerdings wird in der klasse "class.tx_realurl.php" in der Funkion "decodeSpURL" bei

    1. // If there has been a redirect (basically; we arrived here otherwise than via "index.php" in the URL) this can happend either due to a CGI-script or because of reWrite rule. Earlier we used $GLOBALS['HTTP_SERVER_VARS']['REDIRECT_URL'] to check but...
    2. if ($this->pObj->siteScript && substr($this->pObj->siteScript,0,9)!='index.php' && substr($this->pObj->siteScript,0,1)!='?'){

    nicht weiterverarbeitet.

    Kommentiere ich diese Abfrage aus, wird mir auch bei folgendem block für $speakingURIpath kein wert zurückgegeben:

    1. // Getting the path which is above the current site url:
    2. // For instance "first/second/third/index.html?&param1=value1&param2=value2" should be the result of the URL "http://localhost/typo3/dev/dummy_1/first/second/third/index.html?&param1=value1&param2=value2"
    3. $speakingURIpath = $this->pObj->siteScript;

    setz ich hier nun den pfad wieder händisch auf den richtigen wert, dann läuft der iis anscheinend in eine endlosschleife:

    Fehler: Umleitungsfehler

    [HTML]Die aufgerufene Website leitet die Anfrage so um, dass sie nie beendet werden kann.[/HTML]

    hat hier jemand vll noch eine idee?

  • 1