Original AdvancedMod Rewrite 4.6.15

stese
Beiträge: 1040
Registriert: Fr 3. Dez 2004, 17:47
Wohnort: München
Kontaktdaten:

Beitrag von stese » Fr 3. Nov 2006, 13:45

kommt auf deinen server an. bei mir klappt das problemlos. du kannst aber auch versuchen dort den vollen absoluten pfad reinzuschreiben

baumpaul
Beiträge: 346
Registriert: Mo 1. Mär 2004, 12:59
Kontaktdaten:

Beitrag von baumpaul » Fr 3. Nov 2006, 13:48

stese hat geschrieben:kommt auf deinen server an. bei mir klappt das problemlos. du kannst aber auch versuchen dort den vollen absoluten pfad reinzuschreiben
Achso... Hat jemand ne Ahnung ob das bei Host Europe funktioniert oder auf was ich da in der phpinfo.php schauen muss?

DoroM
Beiträge: 116
Registriert: Mo 26. Jul 2004, 12:11
Wohnort: Saarland
Kontaktdaten:

Beitrag von DoroM » Fr 3. Nov 2006, 21:02

Hallo Stese,
erst mal vielen Dank, dass Du uns hier so fürsorglich betreust - schon über Monate. :wink:
Jetzt hab ich mal ne Frage:
Ich hab 2 Mandanten in einer Installation (4.6.8.), bei dem einen funktionierts, bei dem anderen keine Reaktion.
Sieht so aus:
1. Mandant (klappt):
cms/.htaccess mit rewriteBase /cms/
config-php-einstellungen in der contenido/includes/config.php mit rootdir: /cms/
Frontend geht von www.mand1.de auf www.mand1.de/cms/cat/art.html.

2. Mandant (wird nicht überschrieben, d.h. Frontend klappt, aber immer noch ...front_content.php?idcat=138&idart=206)
mand2/ .htaccess mit rewriteBase /mand2/
mand2/config.php mit rootdir: /mand2/
Diese config.php hat den 3. Block aus der contenido/includes/config.php angepasst.
Frontend Mand2 geht von www.mand1.de/mand2/ auf www.mand1.de/mand2/cat/art.html.

Hab ich irgendwo einen Denkfehler?

Merci und Grüßli
DoroM

der_allgaeuer
Beiträge: 94
Registriert: Mo 3. Jan 2005, 20:59
Kontaktdaten:

ModRewrite V4.6.8 - Prob. mit Anzeige des Sprachnamen

Beitrag von der_allgaeuer » Mo 6. Nov 2006, 08:19

Hallo,
habe ModRewrite V4.6.8 am Laufen und funktioniert alles soweit gut.

$cfg['mod_rewrite']['use_language'] habe ich auf 1 und
$cfg['mod_rewrite']['use_language_name'] auf 0.

Die Seiten werden mit der Sprach-ID-nummer aufgerufen. Das funzt auch.

Nur wenn ich $cfg['mod_rewrite']['use_language_name'] auf 1 setze dann kann nach der Startseite der Präsenz keine Seite mehr aufgerufen werden.

Muß ich da an der .htaccess noch was einfügen?
oder wo liegt da wohl meine Lösung :?

Danke schon mal für viele gute Antworten.

mfG Hubert

stese
Beiträge: 1040
Registriert: Fr 3. Dez 2004, 17:47
Wohnort: München
Kontaktdaten:

Beitrag von stese » Mo 6. Nov 2006, 17:17

@dorom:
lass mal die rewrite base weg - die brauchst du eigentlich nicht (also auskommentieren)
schaut eigentlich richtig aus und sollte klappen ... regelst du die modrewrite einstellungen über die config.php oder über die mandanteneinstellungen? der load_client im mandanten sitzt auch korrekt?
wenn ja, muss ich mir das mal genauer anschauen - da wird wahrscheinlich der 2. mandant mit den einstellungen des ersten über die mandanteneinstellung im backend überschrieben

@der_allgäuer:
eigentlich braucht man da nix ändern. wie schaut denn der sprachname aus? wenn der sonderzeichen enthält gibts da probleme - die sprachnamen sollten immer ohne sonderzeichen ein.
ansonsten müsste es eigentlich genau so funktionieren (und läuft so auch auf eigentlich allen unserer seiten)

DoroM
Beiträge: 116
Registriert: Mo 26. Jul 2004, 12:11
Wohnort: Saarland
Kontaktdaten:

Beitrag von DoroM » Mo 6. Nov 2006, 21:20

ich hab die rewrite-base auskommentiert.
Bei use-client und use-client-name macht es keinen Unterschied, ob hier 0 oder 1 gesetzt ist.
Ich hab die Einstellungen aber in der config.php, nicht im backend in den Mandanteneinstellungen.
Kann's daran liegen?
Ob die Einstellungen für den ersten Mandanten in der cms/config.php stehen oder in der contenido/includes/config.php ist egal, seh ich das richtig?
Zuletzt geändert von DoroM am Di 7. Nov 2006, 09:27, insgesamt 1-mal geändert.

stese
Beiträge: 1040
Registriert: Fr 3. Dez 2004, 17:47
Wohnort: München
Kontaktdaten:

Beitrag von stese » Mo 6. Nov 2006, 22:46

naja bei mehrmandantensystemen is das nicht so ganz egal.
die einstellungen sollten dann nur in [mandantenverzeichnis]/config.php liegen - nirgend wo anders.

probiere mal die einstellungen bei beiden mandaten in die config im mandantenverzeichnis zu legen und in der contenido/includes/config komplett zu entfernen - ich glaube die mandantenconfig wird vor der contenido config geladen, so dass die werte in der mandantenconfig dadurch wieder überschrieben werden

DoroM
Beiträge: 116
Registriert: Mo 26. Jul 2004, 12:11
Wohnort: Saarland
Kontaktdaten:

Beitrag von DoroM » Di 7. Nov 2006, 09:38

hab jetzt die Mandanteneinstellungen des ersten Mandanten in der cms/config.php. Keine Reaktion :cry:

alpi
Beiträge: 117
Registriert: Fr 9. Jul 2004, 15:56
Kontaktdaten:

Parameter an URL anhängen

Beitrag von alpi » Do 9. Nov 2006, 20:09

Hi,

Wie bekomme ich eigene Parameter an die URL angehängt?

Beispiel:
Ich möchte einen Link in der Form haben:

Code: Alles auswählen

http://localhost/hp/Kategorie/Unterkategorie/eigenerParamter1/eigenerParameter2/
Also die .htaccess habe ich soweit schon angepasst. Das funktioniert schon.

Mein Problem is nur, dass ich den Link nicht hinkriege.

Wenn ich....

Code: Alles auswählen

$link = $sess->url('front_content.php?idcat='.$idcat.'ligashort='.$ligashort.'&saison='.$saison);
schreibe, setzt er die eigenen Parameter einfach hinter die URL:

Code: Alles auswählen

http://localhost/hp/Kategorie/Unterkategorie/?ligashort=X&saison=Y
Vielen Dank im vorraus.

Gruß
Alpi

stese
Beiträge: 1040
Registriert: Fr 3. Dez 2004, 17:47
Wohnort: München
Kontaktdaten:

Beitrag von stese » Do 9. Nov 2006, 20:32

da wirst du die klasse class.modrewrite.php und die methode build_new_url umschreiben müssen. aber nimms mir nicht übel, dass ich das nicht machen werde ;)

ViktorQ
Beiträge: 9
Registriert: Di 5. Okt 2004, 21:18
Kontaktdaten:

Beitrag von ViktorQ » Fr 10. Nov 2006, 10:06

Habe folgendes Problem.

Ich habe schon auf mehreren verschiedenen Server AdvancedMod Rewrite 4.6.15 installiert und es hat einwandfrei funktioniert.

Jetzt habe ich aber einen Server auf dem AdvancedMod Rewrite 4.6.15 nicht funktioniert.
Wenn ich mod_rewrite einschalte dann werden die Links nicht richtig bzw garnicht generiert.

Mittlerweile hab ich herrausgefunden das es an den Servereinstellungen liegt. Vieleich kann mir jmd sagen welche das sein könnten.

Ich habe zwei Hinweise auf die Einstellung:

1. Wenn ich eine leere .htaccess auf den Server lege dann bekomme ich einen 500 Fehler angezeigt.

2. in der Funktion build_new_url auf dem Server läuft etwas schief und zwar folgendes.

Code: Alles auswählen

      $arr_ignored_params = array ( 'idcat', 'idart', 'lang', 'client', 'idcatart', 'changelang', 'changeclient', 'idartlang' );
      echo "-------".$idcat."---------"; [b]// in $idcat steht nix drin[/b]
      foreach ( $arr_param_pairs as $str_pair ) {
          $bol_found_bad = false;
          $arr_param = split ( "=", $str_pair );
           
          foreach ( $arr_ignored_params as $str_key ) {
              if ( $str_key == strtolower(trim($arr_param[0])) ) {
                  $bol_found_bad = true;
                  break;
              }
               
          }
    
          if ( $bol_found_bad == false ) {
              $arr_additional_params[] = urlencode(urldecode($arr_param[0])) . '=' . urlencode(urldecode($arr_param[1]));
          }
      }
      echo "-------".$idcat."---------"; [b]// in $idcat steht entweder idcat oder Array drin[/b]
Wenn ich in $arr_ignored_params 'idcat' und 'idart' vertausche dann steht im ersten $idcat immer noch nix drin und im zweiten $idcat 'idart' oder auch Array.

Welche php Funktion ist dafür zuständig $idcat einen wert zu geben?
Vieleicht muss das mit der $idcat so sein, aber woher weis er dann welche id er nehmen soll?

Vieleicht hat jemand so ein änliches bzw gleiche Problem schonmal gelöst.

An die php.ini komme ich direkt nicht dran, jedoch kann ich dem Provider sagen was er für Einstellungen machen soll.

Gruß
ViktorQ

stese
Beiträge: 1040
Registriert: Fr 3. Dez 2004, 17:47
Wohnort: München
Kontaktdaten:

Beitrag von stese » Fr 10. Nov 2006, 10:13

1.) nicht gut. schau mal mit nem ftp programm was auch auf dem server editieren kann, ob da vll. unsichtbare steuerzeichen am anfang drinn rumfliegen. das würde den 500 in einer leeren htaccess erklären. wenn das der fall ist, bitte noch einmal mit einem anderen ftp client (nur nicht ws_ftp) alles hochladen.

2.) die funktion die du gequotet hast is dafür gar nicht zuständig.

prinzipiell wird der build_new_url methode der komplette querystring übergeben:
idcat=1&idart=23&lang=3

die php funktion

Code: Alles auswählen

parse_str ($str_args);
macht aus diesem string wieder korrekte variablen auf die man gewöhnlich zugreifen kann.

also wichtiger für dich zu fehlersuche wäre, dir die $str_args ausgeben zu lassen, ob denn in dieser überhaupt die idcat und idart korrekt gesetzt ist - wenn ja, dann hat wohl die funktion parse_str einen fehler bei dir, wenn du nach dem parse_str nicht mehr auf $idcat oder $idart zugreifen kannst

wenn schon die $str_args fehlerhaft ist, dann hast du wohl ein problem mit preg_replace und dem /e parameter

ViktorQ
Beiträge: 9
Registriert: Di 5. Okt 2004, 21:18
Kontaktdaten:

Beitrag von ViktorQ » Fr 10. Nov 2006, 11:28

Ich habe folgende Fehlerüberprüfung gemacht.

Code: Alles auswählen

      echo "--------------------------<br>";
      echo "1.".$str_args."<br>";
      
	  $str_args = str_replace ( "?", "", $str_args );
      echo "2.".$str_args."<br>";
      
	  $str_args = str_replace ( "&", "&", $str_args );
      echo "3.".$str_args."<br>";
      
	  parse_str ($str_args);
	  echo "4. idcat = ".$idcat."<br>";


      // get additional non contenido parameters
      $str_additional_params = '';
      $arr_additional_params = array();
      $arr_param_pairs = split( "&", $str_args );
	  
	  //echo "5. idcat = ".$idcat."<br>";
	  
      $arr_ignored_params = array ( 'idcat', 'idart', 'lang', 'client', 'idcatart', 'changelang', 'changeclient', 'idartlang' );
Ausgabe Beispiel:

Code: Alles auswählen

1.?idcat=4
2.idcat=4
3.idcat=4
4. idcat = 4
Wenn ich den 5. echo anzeige dann bietet er mir die front_content.php zum download an, als ob kein php Server vorhanden ist.

Kann es sein das split die $idcat Variable wieder zerstört?
btw. split macht doch das gleiche wie explode, oder?

MfG
ViktorQ

stese
Beiträge: 1040
Registriert: Fr 3. Dez 2004, 17:47
Wohnort: München
Kontaktdaten:

Beitrag von stese » Fr 10. Nov 2006, 11:33

jein split ist nicht gleich explode - ich komme ursprünglich von PERL und da gabs auch split, daher hatte ich das anfangs immer verwendet - Split kann auch reguläre expressions verwenden zum aufsplitten, genauso wie join beim zusammenfügen.

explode und implode machen das gleiche, allerdings nur mit simplen strings.

also ersetze mal bitte das split durch ein explode - vielleicht hilft das schon

ViktorQ
Beiträge: 9
Registriert: Di 5. Okt 2004, 21:18
Kontaktdaten:

Beitrag von ViktorQ » Fr 10. Nov 2006, 11:44

habe es direkt nach dem posten versucht.
Hat nicht funktioniert.

komisch ist nur das er beim 5. echo mir die front_content.php zum download
anbietet.

wenn ich im 5. echo jedoch was anderes ausgeben lasse z.B. $arr_param_pairs[0] kommt dieser Fehler nicht.

Woran kann das liegen?

Gesperrt