Probleme mit / in der URL |
Willkommen, Gast ( Anmelden | Registrierung ) [ Hilfe | Mitglieder | Suche ]
Probleme mit / in der URL |
Wed. 13. June 2007, 07:33
Beitrag
#1
|
|
Member Gruppe: Members Beiträge: 44 Mitglied seit: 06.07.2006 Wohnort: St.Gallen - Switzerland Mitglieds-Nr.: 114 |
Hallo zusammen....
Ich hoffe jemand kann mir hierbei helfen. Komischerweise kann ich die URL www.metropol-arbon.ch/kontakt nicht öffnen, www.metropol-arbon.ch/kontakt/ hingegen schon. Kann das sein? Muss ein Slash am ende der URL mitgegeben werden? Wäre ja ziemlich unlogisch, nicht? Der Beitrag wurde von superdeluxe bearbeitet: Wed. 13. June 2007, 07:34 -------------------- |
|
|
Wed. 13. June 2007, 07:52
Beitrag
#2
|
|
purist Gruppe: AdvancedMembers Beiträge: 1.525 Mitglied seit: 30.06.2006 Wohnort: luzern (schweiz) Mitglieds-Nr.: 16 |
-------------------- |
|
|
Wed. 13. June 2007, 08:47
Beitrag
#3
|
|
Member Gruppe: Members Beiträge: 44 Mitglied seit: 06.07.2006 Wohnort: St.Gallen - Switzerland Mitglieds-Nr.: 114 |
Oh.. Nein, echt! Das finde ich aber ziemlich uncool. Vorallem dann, wenn man die URL irgendwie kommunizieren muss. Gibts einen Workaround? Kann man das irgendwie per Regel beheben?
-------------------- |
|
|
Wed. 13. June 2007, 09:00
Beitrag
#4
|
|
purist Gruppe: AdvancedMembers Beiträge: 1.525 Mitglied seit: 30.06.2006 Wohnort: luzern (schweiz) Mitglieds-Nr.: 16 |
denke nicht. wie in meinem verlinkten beitrag zu entnehmen ist. man könnte einzig ein feature request starten. in wiefern das dann umsetzbar ist weiss ich jedoch nicht.
gruss andi -------------------- |
|
|
Wed. 13. June 2007, 09:43
Beitrag
#5
|
|
Advanced Member Gruppe: AdvancedMembers Beiträge: 853 Mitglied seit: 16.06.2006 Wohnort: Wien / Österreich Mitglieds-Nr.: 2 |
CODE # # Add a trailing slash if a " virtual folder" is requested without a trailing slash. # RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_URI} !\..+$ RewriteCond %{REQUEST_URI} !/$ RewriteRule (.*) $1/ [R=301,L] Hier mal ein eventueller Lösungsanastz für das Problem. Diese Rewrite Statement gleich ganz am Anfang der .htaccess nach RewriteEngine on einfügen. Nicht vergessen eventuell das Statement RewriteBase anzupassen. Das ganze ist aber ungetestet, keine Ahnung ob das mit allen Modulen, Plugins usw. auch funktioniert. Auf jeden Fall geht es nicht, wenn der Foldername der ohne Slash aufgerufen wird selbst einen Punkt enthält oder wenn im System keine Extension die durch einen Punkt (ala *.html) getrennt ist verwendet wird. Update: Der 301 Code beim Redirect ist wohl Geschmacksache -------------------- SEFRENGO | a free choice ... again!
|
|
|
Wed. 13. June 2007, 17:02
Beitrag
#6
|
|
Member Gruppe: Members Beiträge: 44 Mitglied seit: 06.07.2006 Wohnort: St.Gallen - Switzerland Mitglieds-Nr.: 114 |
Hmm... mal probieren, oder? Ich melde mich dann nochmals. Danke.
-------------------- |
|
|
Wed. 13. June 2007, 17:05
Beitrag
#7
|
|
Advanced Member Gruppe: AdvancedMembers Beiträge: 541 Mitglied seit: 27.06.2006 Mitglieds-Nr.: 8 |
... also eigentlich, um das Problem richtig zu lösen,
müsste man nur in der Datei 'projektxy/index.php' folgendes tun: CODE //get idcatside or idcat if ($sf_rw_is_page) { //page $sf_rw_suffix = str_replace('.', '\.', $cfg_client['url_rewrite_suffix']); $v = preg_replace('#'.$sf_rw_suffix.'$#', '', $sf_rw_pieces['0']); $sql = "SELECT DISTINCT CS.idcatside, CS.idcat FROM ".$cms_db['cat_side']." CS LEFT JOIN ".$cms_db['side_lang']." CL USING(idside) WHERE CL.idlang= '$sf_rw_lang_id' AND CL.rewrite_url = '".$v."'"; $db->query($sql); $db->num_rows(); if ($db->num_rows() > 0) { while ($db->next_record()) { $sf_rw_possibleidcats[$db->f('idcatside')] = $db->f('idcat'); } array_shift($sf_rw_pieces); foreach($sf_rw_possibleidcats AS $k=>$v) { if(rewriteIdcatIsUniqueToPath($v, $sf_rw_lang_id, $sf_rw_pieces)) { //echo "IN"; $idcatside = $k; //$idcat = $v; break; } } } } else { //cat $sql = "SELECT DISTINCT C.idcat, C.parent FROM ".$cms_db['cat']." C LEFT JOIN ".$cms_db['cat_lang']." CL USING(idcat) WHERE CL.idlang = '$sf_rw_lang_id' AND rewrite_alias = '".$sf_rw_pieces['0']."'"; $db->query($sql); if ($db->num_rows() > 0) { $sf_rw_possibleidcats = array(); while ($db->next_record()) { array_push($sf_rw_possibleidcats, $db->f('idcat') ); } foreach ($sf_rw_possibleidcats AS $v) { if(rewriteIdcatIsUniqueToPath($v, $lang, $sf_rw_pieces)) { $idcat = $v; break; } } } } ... damit tauschen CODE //get idcatside or idcat ... wobei ich hier auch der übersichtlichkeit alle unnützen Kommentare gelöscht habe if ($sf_rw_is_page) { //page $sf_rw_suffix = str_replace('.', '\.', $cfg_client['url_rewrite_suffix']); $v = preg_replace('#'.$sf_rw_suffix.'$#', '', $sf_rw_pieces['0']); $sql = "SELECT DISTINCT CS.idcatside, CS.idcat FROM ".$cms_db['cat_side']." CS LEFT JOIN ".$cms_db['side_lang']." CL USING(idside) WHERE CL.idlang= '$sf_rw_lang_id' AND CL.rewrite_url = '".$v."'"; $db->query($sql); $db->num_rows(); if ($db->num_rows() > 0) { while ($db->next_record()) { $sf_rw_possibleidcats[$db->f('idcatside')] = $db->f('idcat'); } array_shift($sf_rw_pieces); foreach($sf_rw_possibleidcats AS $k=>$v) { if(rewriteIdcatIsUniqueToPath($v, $sf_rw_lang_id, $sf_rw_pieces)) { //echo "IN"; $idcatside = $k; //$idcat = $v; break; } } } else { $sf_rw_is_page = false; } } if (!$sf_rw_is_page) { //cat $sql = "SELECT DISTINCT C.idcat, C.parent FROM ".$cms_db['cat']." C LEFT JOIN ".$cms_db['cat_lang']." CL USING(idcat) WHERE CL.idlang = '$sf_rw_lang_id' AND rewrite_alias = '".$sf_rw_pieces['0']."'"; $db->query($sql); if ($db->num_rows() > 0) { $sf_rw_possibleidcats = array(); while ($db->next_record()) { array_push($sf_rw_possibleidcats, $db->f('idcat') ); } foreach ($sf_rw_possibleidcats AS $v) { if(rewriteIdcatIsUniqueToPath($v, $lang, $sf_rw_pieces)) { $idcat = $v; break; } } } } Man beachte das die eigentliche Änderung nur diesen Teil umfasst: (vorher) QUELLTEXT } (nacher)} else { QUELLTEXT } else { $sf_rw_is_page = false; } } if (!$sf_rw_is_page) { Gruß
Bearbeitungsgrund: codebox verwenden!
|
|
|
Wed. 13. June 2007, 17:10
Beitrag
#8
|
|
Advanced Member Gruppe: AdvancedMembers Beiträge: 853 Mitglied seit: 16.06.2006 Wohnort: Wien / Österreich Mitglieds-Nr.: 2 |
richtig wäre codebox zu benutzen
-------------------- SEFRENGO | a free choice ... again!
|
|
|
Wed. 13. June 2007, 17:12
Beitrag
#9
|
|
Advanced Member Gruppe: AdvancedMembers Beiträge: 541 Mitglied seit: 27.06.2006 Mitglieds-Nr.: 8 |
...
ZITAT richtig wäre codebox zu benutzen ... oh wow, ich liebe solche Troll-Kommentare, Rechtschreibfehler kannste auch behalten Gruß |
|
|
Wed. 13. June 2007, 20:11
Beitrag
#10
|
|
Advanced Member Gruppe: AdvancedMembers Beiträge: 442 Mitglied seit: 02.07.2006 Wohnort: Halle Mitglieds-Nr.: 71 |
Es gibt also mehr als die eine Lösung.
-------------------- |
|
|
Wed. 13. June 2007, 20:39
Beitrag
#11
|
|
Advanced Member Gruppe: AdvancedMembers Beiträge: 541 Mitglied seit: 27.06.2006 Mitglieds-Nr.: 8 |
Der Nachteil einer Modrewrite Lösung liegt auf der Hand,
eine Regel basiert immer auf einer Annahme und nicht auf einer tatsächlichen Prüfung! Gruß |
|
|
Wed. 13. June 2007, 21:50
Beitrag
#12
|
|
Advanced Member Gruppe: AdvancedMembers Beiträge: 853 Mitglied seit: 16.06.2006 Wohnort: Wien / Österreich Mitglieds-Nr.: 2 |
@pawel: ich bin mir ziemlich sicher, das es mit modrewrite noch andere Lösungswege gibt - das ist wie mit den unendlichen weiten des weltraums
-------------------- SEFRENGO | a free choice ... again!
|
|
|
Vereinfachte Darstellung | Aktuelles Datum: 24.4.24 - 11:23 |