Short URLs für phpBB2

In diesem Forum können Mod-Autoren ihre Mods vorstellen, die sich noch im Entwicklungsstatus befinden. Der Einbau in Foren im produktiven Betrieb wird nicht empfohlen.
Forumsregeln
phpBB 2.0 hat das Ende seiner Lebenszeit überschritten
phpBB 2.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 2.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf phpBB 3.0, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
adidas
Mitglied
Beiträge: 1204
Registriert: 14.08.2003 00:09

Beitrag von adidas »

nein hab ich ned :(

hilfe mir :)
>>>>>>0<<<<<<
Godot

Beitrag von Godot »

Also ich habe jetzt mal noch dieses LastTopic-MOD eingebaut, die "letzten Beiträge" haben nun leider keine ShortURL und werden über viewtopic.php?... aufgerufen. Hat da schon jemand eine Lösung für?

Sonst werden ja die aktuellen Beiträge doppelt gespidert :-?

Ciao
Logical
Mitglied
Beiträge: 132
Registriert: 25.01.2004 14:00

Beitrag von Logical »

So, ich habe mit einigen Mühen den Short-Url Mod nun auch zum Laufen gebracht.
Nur besteht bei mir auch noch das Problem, dass die Links von den "letzten Beiträgen"(der Pfeil neben dem Datum) nicht umgewandelt werden.
Trotz Lesen der 80 Seiten dieses Threads und einigem Probieren der bisherigen Vorschläge.....
Die .htaccess sieht bisher so aus

Code: Alles auswählen

DirectoryIndex index.html portal.php index.php index.htm
ErrorDocument 404 /404.php
AddType image/x-icon .ico
Options FollowSymLinks
RewriteEngine On

RewriteCond %{REQUEST_FILENAME} /forums.*
RewriteRule (.*) /index.php
RewriteCond %{REQUEST_FILENAME} /viewforum([0-9]*)-([0-9]*)-([0-9]*).* 
RewriteRule (.*) /viewforum.php?f=%1&topicdays=%2&start=%3
RewriteCond %{REQUEST_FILENAME} /forum([0-9]*).*
RewriteRule (.*) /viewforum.php?f=%1
RewriteCond %{REQUEST_FILENAME} /ptopic([0-9]*).*
RewriteRule (.*) /viewtopic.php?t=%1&view=previous
RewriteCond %{REQUEST_FILENAME} /ntopic([0-9]*).*
RewriteRule (.*) /viewtopic.php?t=%1&view=next
RewriteCond %{REQUEST_FILENAME} /ftopic([0-9]*)-([0-9]*)-([a-zA-Z]*)-([0-9]*).*
RewriteRule (.*) /viewtopic.php?t=%1&postdays=%2&postorder=%3&start=%4
RewriteCond %{REQUEST_FILENAME} /ftopic([0-9]*)-([0-9]*).*
RewriteRule (.*) /viewtopic.php?t=%1&start=%2
RewriteCond %{REQUEST_FILENAME} /ftopic([0-9]*).*
RewriteRule (.*) /viewtopic.php?t=%1
RewriteCond %{REQUEST_FILENAME} /ftopic([0-9]*).*
RewriteRule (.*) /viewtopic.php?t=%1&start=%2&postdays=%3&postorder=%4&highlight=%5
und gehostet ist das ganze bei 1&1 - hatte also die gleichen Probleme wie Markus67 relativ am Anfang des Threads (ca. Seite 12-15)
Vielleicht hat ja noch jemand eine Idee wie ich die .htaccess und die pageheader.php anpassen muss, damit auch das funktioniert.
Ansonsten - Super Modifikation - Danke dafür
adidas
Mitglied
Beiträge: 1204
Registriert: 14.08.2003 00:09

Beitrag von adidas »

adidas hat geschrieben:
rabbit hat geschrieben:btw, categories hierarchy ist nicht gleich categories hierarchy... ;)
es kommt auf die version an, und was ich gepostet habe, ist für CH 2.1.0 gedacht. ob und wie der code mit älteren versionen funktioniert, kann ich nicht sagen.
ja ok, dann so, aber du hast für die ältere version auch geholfen :D

wie kriege ich das jetzt weg?
adidas hat geschrieben:komisch, wenn man jetzt bei mir im Forum links mit index.php gibt

z.b.

www.phpbb.de/index.php, wirds automatisch zu www.phpbb.de/forums.html (also man schreibt nen beitrag mit /index.php, sendet es ab, aber es macht /forums.html)

kann man das irgendwie wegkriegen? das nervt irgendwie
hilft mir :oops:
>>>>>>0<<<<<<
Benutzeravatar
larsneo
Mitglied
Beiträge: 2622
Registriert: 07.03.2002 15:23
Wohnort: schwäbisch gmünd
Kontaktdaten:

Beitrag von larsneo »

Logical hat geschrieben: Nur besteht bei mir auch noch das Problem, dass die Links von den "letzten Beiträgen"(der Pfeil neben dem Datum) nicht umgewandelt werden.
ein erweitertes rewriting (das allerdings derzeit noch in der testphase ist) findest du unter http://www.phpbb.de/viewtopic.php?t=74349 - die dortige .htaccess bzw. rewrite function wird dir sicherlich helfen ;-)

@adidas: wird bei deiner version (du nutzt ja nicht die variante aus dem ursprungsposting) die $base_url in der /includes/page_header.php auch aus den enviroment angaben des servers zusammengebastelt?
gruesse aus dem wilden sueden
larsneo
..::[krapohl.net]::..
Benutzeravatar
rabbit
Ehemaliger Übersetzer
Beiträge: 4199
Registriert: 14.06.2003 22:09
Wohnort: Hildesheim
Kontaktdaten:

Beitrag von rabbit »

larsneo hat geschrieben:@adidas: wird bei deiner version (du nutzt ja nicht die variante aus dem ursprungsposting) die $base_url in der /includes/page_header.php auch aus den enviroment angaben des servers zusammengebastelt?
nein. aber man kann es ja mal mit deiner version versuchen. :) werde das mal auf meinem test environment laufen lassen...
cave: nur für url_rewrite in verbindung mit CH 2.1.0!

suche (in page_header.php):

Code: Alles auswählen

ob_start(); 
function replace_mod_rewrite($s) 
{
und ersetze mit:

Code: Alles auswählen

ob_start(); 

function replace_for_mod_rewrite(&$s) { 
// get the correct base_url: protocoll,url,path to make sure to rewrite only internal links 
if (empty($HTTP_SERVER_VARS['HTTP_HOST'])) { 
   $server = getenv('HTTP_HOST'); 
} else { 
   $server = $HTTP_SERVER_VARS['HTTP_HOST']; 
} 
// IIS sets HTTPS=off 
if (isset($HTTP_SERVER_VARS['HTTPS']) && $HTTP_SERVER_VARS['HTTPS'] != 'off') { 
   $proto = 'https://'; 
} else { 
   $proto = 'http://'; 
} 
// Get the name of this URI 
// Start of with REQUEST_URI 
if (isset($HTTP_SERVER_VARS['REQUEST_URI'])) { 
   $path = $HTTP_SERVER_VARS['REQUEST_URI']; 
} else { 
   $path = getenv('REQUEST_URI'); 
} 
if ((empty($path)) || (substr($path, -1, 1) == '/')) { 
   // REQUEST_URI was empty or pointed to a path 
   // Try looking at PATH_INFO 
   $path = getenv('PATH_INFO'); 
   if (empty($path)) { 
      // No luck there either 
      // Try SCRIPT_NAME 
      if (isset($HTTP_SERVER_VARS['SCRIPT_NAME'])) { 
         $path = $HTTP_SERVER_VARS['SCRIPT_NAME']; 
      } else { 
         $path = getenv('SCRIPT_NAME'); 
      } 
   } 
} 

$path = preg_replace('/[#\?].*/', '', $path); 
$path = dirname($path); 

if (preg_match('!^[/\\\]*$!', $path)) { 
   $path = ''; 
} 

$base_url = "$proto$server$path/"; 
$prefix = '|"(?:'.$base_url.')?'; 
// now that we know about the correct $prefix we can start the rewriting
in page_tail.php suchen:

Code: Alles auswählen

$contents = ob_get_contents(); 
ob_end_clean(); 
echo replace_mod_rewrite($contents); 
global $dbg_starttime;
und ersetzen mit:

Code: Alles auswählen

$contents = ob_get_contents(); 
ob_end_clean(); 
echo replace_for_mod_rewrite($contents);
suchen:

Code: Alles auswählen

echo replace_for_mod_rewrite($contents);
ersetzen mit:

Code: Alles auswählen

$gzip_contents = replace_for_mod_rewrite($gzip_contents);
Offizieller Übersetzer des Categories Hierarchy MOD 2.1.x
Deutscher UserGuide für den Categories Hierarchy MOD v2.1.4
Empfohlener Hoster: All-Inkl.com
Logical
Mitglied
Beiträge: 132
Registriert: 25.01.2004 14:00

Beitrag von Logical »

Super - mit der neuen (Test-)Version scheint bisher alles zu laufen...
Danke erstmal.
Benutzeravatar
larsneo
Mitglied
Beiträge: 2622
Registriert: 07.03.2002 15:23
Wohnort: schwäbisch gmünd
Kontaktdaten:

Beitrag von larsneo »

man sollte halt auch nicht einfach ein paar teile weglassen 8)
das erste snippet wird gebraucht, damit nur links in verbindung mit der eigenen domain umgeschrieben werden, das zweite snippet korrigiert das in verbindung mit opera auftretende problem der fehlerhaften crc-prüfsumme...
gruesse aus dem wilden sueden
larsneo
..::[krapohl.net]::..
adidas
Mitglied
Beiträge: 1204
Registriert: 14.08.2003 00:09

Beitrag von adidas »

rabbit hat geschrieben:
larsneo hat geschrieben:@adidas: wird bei deiner version (du nutzt ja nicht die variante aus dem ursprungsposting) die $base_url in der /includes/page_header.php auch aus den enviroment angaben des servers zusammengebastelt?
nein. aber man kann es ja mal mit deiner version versuchen. :) werde das mal auf meinem test environment laufen lassen...
cave: nur für url_rewrite in verbindung mit CH 2.1.0!

suche (in page_header.php):

Code: Alles auswählen

ob_start(); 
function replace_mod_rewrite($s) 
{
und ersetze mit:

Code: Alles auswählen

ob_start(); 

function replace_for_mod_rewrite(&$s) { 
// get the correct base_url: protocoll,url,path to make sure to rewrite only internal links 
if (empty($HTTP_SERVER_VARS['HTTP_HOST'])) { 
   $server = getenv('HTTP_HOST'); 
} else { 
   $server = $HTTP_SERVER_VARS['HTTP_HOST']; 
} 
// IIS sets HTTPS=off 
if (isset($HTTP_SERVER_VARS['HTTPS']) && $HTTP_SERVER_VARS['HTTPS'] != 'off') { 
   $proto = 'https://'; 
} else { 
   $proto = 'http://'; 
} 
// Get the name of this URI 
// Start of with REQUEST_URI 
if (isset($HTTP_SERVER_VARS['REQUEST_URI'])) { 
   $path = $HTTP_SERVER_VARS['REQUEST_URI']; 
} else { 
   $path = getenv('REQUEST_URI'); 
} 
if ((empty($path)) || (substr($path, -1, 1) == '/')) { 
   // REQUEST_URI was empty or pointed to a path 
   // Try looking at PATH_INFO 
   $path = getenv('PATH_INFO'); 
   if (empty($path)) { 
      // No luck there either 
      // Try SCRIPT_NAME 
      if (isset($HTTP_SERVER_VARS['SCRIPT_NAME'])) { 
         $path = $HTTP_SERVER_VARS['SCRIPT_NAME']; 
      } else { 
         $path = getenv('SCRIPT_NAME'); 
      } 
   } 
} 

$path = preg_replace('/[#\?].*/', '', $path); 
$path = dirname($path); 

if (preg_match('!^[/\\\]*$!', $path)) { 
   $path = ''; 
} 

$base_url = "$proto$server$path/"; 
$prefix = '|"(?:'.$base_url.')?'; 
// now that we know about the correct $prefix we can start the rewriting
in page_tail.php suchen:

Code: Alles auswählen

$contents = ob_get_contents(); 
ob_end_clean(); 
echo replace_mod_rewrite($contents); 
global $dbg_starttime;
und ersetzen mit:

Code: Alles auswählen

$contents = ob_get_contents(); 
ob_end_clean(); 
echo replace_for_mod_rewrite($contents);
suchen:

Code: Alles auswählen

echo replace_for_mod_rewrite($contents);
ersetzen mit:

Code: Alles auswählen

$gzip_contents = replace_for_mod_rewrite($gzip_contents);
is das jetzt für mich???
>>>>>>0<<<<<<
Benutzeravatar
rabbit
Ehemaliger Übersetzer
Beiträge: 4199
Registriert: 14.06.2003 22:09
Wohnort: Hildesheim
Kontaktdaten:

Beitrag von rabbit »

is das jetzt für mich???
ja.
Offizieller Übersetzer des Categories Hierarchy MOD 2.1.x
Deutscher UserGuide für den Categories Hierarchy MOD v2.1.4
Empfohlener Hoster: All-Inkl.com
Antworten

Zurück zu „phpBB 2.0: Mods in Entwicklung“