CMS Made Simple Forums
https://forum.cmsmadesimple.org/

Anchor links funktionieren nicht wegen Pretty Urls und rewrite
https://forum.cmsmadesimple.org/viewtopic.php?f=24&t=50096
Page 1 of 1

Author:  pawi [ Tue Dec 14, 2010 10:54 am ]
Post subject:  Anchor links funktionieren nicht wegen Pretty Urls und rewrite

Hallo!

Durch die Verwendung von Pretty URLs funktionieren mein Anchor-Links nicht.
(ich verwende CMSMS 1.8.2)

Innerhalb z.B. www.domain.eu/unterordner/seite.html möchte ich mit #anker1 verlinken, jedoch wird der Link immer zu

www.domain.eu#anker1 und verlässt somit meine Seite.

Ich habe bereits verschiedene Optionen des Rewriting in der config.php versucht

Code:
$config['url_rewriting'] = mod_rewrite;
$config['url_rewriting'] = internal;
$config['url_rewriting'] = none;
$config['url_rewriting'] = true;

jedoch ohne sichtliche Veränderung.

Meine .htaccess sieht so aus:

Code:
# BEGIN CMSMS and Rewrite Rules
# Make sure you have Options FollowSymLinks
# and Allow on

RewriteEngine On

# Might be needed in a subdirectory
#RewriteBase /

# URL Filtering helps stop some hack attempts
#IF the URI contains a "http:"
RewriteCond %{QUERY_STRING} http\: [OR]
#OR if the URI contains a "["
RewriteCond %{QUERY_STRING} \[ [OR]
#OR if the URI contains a "]"
RewriteCond %{QUERY_STRING} \] [OR]
#OR if the URI contains a "<__script__>"
RewriteCond %{QUERY_STRING} (\<|%3C).*script.*(\>|%3E) [NC,OR]
#OR script trying to set a PHP GLOBALS variable via URL
RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR]
#OR any script trying to modify a _REQUEST variable via URL
RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2})
RewriteRule ^.*$ - [F,L]
# END Filtering

# CMSMS Rewriting
# Set assume mod_rewrite to true in config.php and clear CMSMS cache
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)$ index.php?page=$1 [QSA]
# END CMSMS

# END Rewrite rules



Weiß jemand, wie ich die Domain den Ankern wegbekomme?
Also wie ich meine Links dazu bringe, so auszusehen

Code:
<a href="#anker1">LINK</a>


anstatt
Code:
<a href="http://www.domain.eu#anker1">LINK</a>


?

Danke!!

pawi

Author:  nockenfell [ Tue Dec 14, 2010 12:17 pm ]
Post subject:  Re: Anchor links funktionieren nicht wegen Pretty Urls und rewrite

http://forum.cmsmadesimple.org/index.php?topic=35339.0

Author:  pawi [ Tue Dec 14, 2010 5:22 pm ]
Post subject:  Re: Anchor links funktionieren nicht wegen Pretty Urls und rewrite

Danke für den Link! Ich verstehe leider nur nicht, was da beschrieben wird..

Wo befindet sich die preparse-Datei, auf die sich der durchgestrichene Text bezieht? Und wohin soll ich das PHP-Skript kopieren, das cyberman gepostet hat? Ich habe das an den Seitenanfang gesetzt und bekomme trotz {literal}-Tag lauter Smarty Errors. Auch wenn ich einen benutzerdefinierten Tag für das Skript anlege.

Ich muss noch ergänzen, dass ich keine Lösung verwenden kann, die die Seiten-URL vornedranstellt, da die Anker auf einen jquery Slider verweisen. Dieser soll natürlich sliden, daher soll die Seite nicht neu geladen werden.

pawi

Author:  cyberman [ Tue Dec 14, 2010 9:07 pm ]
Post subject:  Re: Anchor links funktionieren nicht wegen Pretty Urls und rewrite

pawi wrote:
Und wohin soll ich das PHP-Skript kopieren, das cyberman gepostet hat?


In den /plugin-Ordner ... wird dann automatisch ausgeführt ;).

Author:  pawi [ Thu Dec 16, 2010 9:03 am ]
Post subject:  Re: Anchor links funktionieren nicht wegen Pretty Urls und rewrite

Danke, cyberman. Ich hab das jetzt mal gemacht, diesen Code

Code:
<?php
function smarty_cms_prefilter_replaceanchor($tpl_source, &$smarty)
{
   return preg_replace('/<a href="#([A-Za-z0-9\\._-]+)">(.+)<\/a>/', "{anchor anchor='$1' text='$2'}", $tpl_source);
}
?>


abgespeichert als "prefilter.replaceanchor.php" und direkt in den Plugins-Folder kopiert.
Leider verändern sich meine Anker immernoch nicht :( Ausführbar ist das Skript theoretisch, Rechte sind gesetzt.

Habe ich irgendetwas vergessen?
Danke für geduldige Hilfe hier :)

pawi

Page 1 of 1 All times are UTC
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/