Sonderzeichen # in der RewriteRule

Alles, was den Apache betrifft, kann hier besprochen werden.

Sonderzeichen # in der RewriteRule

Postby NooB » 29. February 2004 13:46

Wie kann ich das Sonderzeichen # für die Anker in den Links benutzen?


RewriteRule ^abc(.*)_(.*)(\.html?)$ abc\.php?blub=$1#$2

Per Google fand ich einen Hinweis, dass man mit %23 arbeiten soll. Doch wie baut man es hinten ein?


Das alles hier funzt nicht:

Code: Select all
blub=$1\#$2
blub=$1#$2
blub=$1\%23$2
blub=$1%23$2




Viel Dank im voraus
Last edited by NooB on 29. February 2004 21:47, edited 1 time in total.
NooB
 
Posts: 4
Joined: 29. February 2004 12:51

Postby n.d. parker » 29. February 2004 18:53

Moin,

So, wie du es verwendest, ist es irgendwie sinnlos. Was möchtest du denn damit erreichen?

nd
n.d. parker
 
Posts: 18
Joined: 10. February 2004 23:53

Postby NooB » 29. February 2004 21:36

Das da oben ist nur ein kleiner Auszug meiner htaccess.
Alles funzt, wie gewünscht, bis auf Links mit einem #-Anker.

z.B. wird aus

forum_1_2.html -> board.php?boardid=1&page=2


Brauche also nur eine Lösung, wie ich aus einem

thema_1_5.html -> thread.php?threadid=1#5

machen kann.


cu
NooB
 
Posts: 4
Joined: 29. February 2004 12:51

Postby n.d. parker » 01. March 2004 00:05

Moin,

nja. Nur um das klarzustellen: wir reden doch von einer serverseitigen Umleitung (der Browser bekommt davon nichts mit)? Dem Server ist der Anker ziemlich egal. Anker sind *ausschließlich* für den Client interessant und werden normalerweise auch nicht zum Server mitgeschickt. Und selbst wenn, wird er beim Script nicht in einer vernünftigen Form ankommen.

Deshalb erschließt sich mir nicht, was du machen möchtest. Einen (externen) Redirect?

nd
n.d. parker
 
Posts: 18
Joined: 10. February 2004 23:53

Postby NooB » 01. March 2004 01:41

Hi,

im Original sind die Links nach dem Schema abc.php?postid=4.....
Ich benutze die .htaccess, um in die Links, welche nun als abc_postid4.html dargestellt werden, in das erwähnte Schema zu übertragen.

Was ich nun möchte, ist einen Link der Form abc.php?postid=4#4 per abc_postid4_4.html aufrufen zu können.

Gibt es keine Möglichkeit, # mit zu übertragen?

Danke für dein Feedback.


cu
NooB
 
Posts: 4
Joined: 29. February 2004 12:51

Postby Stefan » 01. March 2004 16:28

Hi,

versuch doch mal in der RewriteRule ein " [L,QSA] " anzuhängen.
Damit kann man z.B dafür sorgen, dass automatisch angehängte session ids auch korrekt übergeben werden. Ich tippe jetzt mal so ungeprüft, das das auch mit Ankern funktioniert.

Code: Select all
RewriteRule ^abc(.*)(\.html?)$ abc\.php?blub=$1  [L,QSA]


den zweiten Ausdruck bräuchtest Du dann nicht mehr in der Regel, sondern setzt den Anker bei der Verlinkung.

Statt : forum_1.html -> board.php?boardid=1
Jetzt : forum_1.html#2 ->bord.php?boardid=1#2

versuchs doch mal.

Gruß
Stefan

# qsappend|QSA' (query string append)

This flag forces the rewriting engine to append a query string
part in the substitution string to the existing one instead of replacing it.
Use this when you want to add more data to the query string via a rewrite rule.
User avatar
Stefan
 
Posts: 475
Joined: 26. December 2002 22:36
Location: Mitten in der sonnigen Südpfalz


Return to Apache

Who is online

Users browsing this forum: No registered users and 4 guests