[mod_rewrite] Query String killen nach Form method="get" / erledigt

strolch00

redraft.de
ID: 155297
L
21 April 2006
1.684
72
Hi @all,

diesmal habsch mal selber ne Frage zu mod_rewrite. Wie kann ich den Query String nach einen Redirect kappen?

Ich abe schon google bemüht, aber das einzig brauchbar was ich fand war
https://www.modrewrite.de/foren/ftopic3113.html
und das funktioniert so bei mir nicht.


Mein Code:
Code:
RewriteCond %{QUERY_STRING} ^search_word=([^&]*)
RewriteRule ^$ /%1.htm? [R=301,N]
RewriteCond %{REQUEST_URI} !"index.php"
RewriteRule ([^/]*)\.htm$ index.php?search_word=$1&search=1 [L]

Die redirecte Umleitung funktioniert auch net wirklich.

Gruß strolch00
 
Zuletzt bearbeitet:
Ok Zero nochmal genauer ;)

Ich habe ein Formulat mit method="get" wenn man dort auto eingibt und absendet kommt
domain/?search_word=auto&search=suche+starten
bei raus.

Jetzt will ich diese Anfrage Url redirect umschreiben zu domain/auto.htm, dabei im gleichen Atemzug den Querystring killen(leeren). Um dann intern umzuleiten zu index.php?search_word=....
Das Problem ist:
die redirecte Umleitung und das Querystring leeren, das will nicht, die interne Umleitung funzt.

Hoffe jetzt ist es klarer.

Erklärung des warum wieso weshalb:
Ich will keine schwachsinnige dump Datei, welche nur einen header('Location:... enthält, auf dem Space haben. Weil wenn ich eh die RewriteEngine bemühen muss wegen der internen Umleitung kann ich der auch gleich zwei Rules geben und die erledigt die Arbeit für mich.

Einfacher wäre natürlich wenn man dem form Tag im xhtml sagen kann action="/search_word" geht ja aber net. Wobei wir bei nützlich fehlenden Attributen wären. :roll:

*edit
Hier mal noch das rewritelog
Code:
84.149.254.249 - - [07/Feb/2007:15:25:33 +0100] [rss.redraft.de/sid#801cf588][rid#805bf628/initial] (2) init rewrite engine with requested uri /
84.149.254.249 - - [07/Feb/2007:15:25:33 +0100] [rss.redraft.de/sid#801cf588][rid#805bf628/initial] (1) pass through /
84.149.254.249 - - [07/Feb/2007:15:25:33 +0100] [rss.redraft.de/sid#801cf588][rid#805bf628/initial] (3) [perdir /srv/www/web1/html/redraft-neu/test/rss/] strip per-dir prefix: /srv/www/web1/html/redraft-neu/test/rss/ ->
84.149.254.249 - - [07/Feb/2007:15:25:33 +0100] [rss.redraft.de/sid#801cf588][rid#805bf628/initial] (3) [perdir /srv/www/web1/html/redraft-neu/test/rss/] applying pattern '^$' to uri ''
84.149.254.249 - - [07/Feb/2007:15:25:33 +0100] [rss.redraft.de/sid#801cf588][rid#805bf628/initial] (4) [perdir /srv/www/web1/html/redraft-neu/test/rss/] RewriteCond: input='search_word=auto&search=suche+starten' pattern='^search_word=([^&]*)' => matched
84.149.254.249 - - [07/Feb/2007:15:25:33 +0100] [rss.redraft.de/sid#801cf588][rid#805bf628/initial] (2) [perdir /srv/www/web1/html/redraft-neu/test/rss/] rewrite '' -> '/auto.htm?'
84.149.254.249 - - [07/Feb/2007:15:25:33 +0100] [rss.redraft.de/sid#801cf588][rid#805bf628/initial] (3) split uri=/auto.htm? -> uri=/auto.htm, args=<none>
84.149.254.249 - - [07/Feb/2007:15:25:33 +0100] [rss.redraft.de/sid#801cf588][rid#805bf628/initial] (2) [perdir /srv/www/web1/html/redraft-neu/test/rss/] explicitly forcing redirect with https://rss.redraft.de/auto.htm
84.149.254.249 - - [07/Feb/2007:15:25:33 +0100] [rss.redraft.de/sid#801cf588][rid#805bf628/initial] (3) [perdir /srv/www/web1/html/redraft-neu/test/rss/] applying pattern '^$' to uri 'https://rss.redraft.de/auto.htm'
84.149.254.249 - - [07/Feb/2007:15:25:33 +0100] [rss.redraft.de/sid#801cf588][rid#805bf628/initial] (3) [perdir /srv/www/web1/html/redraft-neu/test/rss/] applying pattern '([^/]*)\.htm$' to uri 'https://rss.redraft.de/auto.htm'
84.149.254.249 - - [07/Feb/2007:15:25:33 +0100] [rss.redraft.de/sid#801cf588][rid#805bf628/initial] (4) [perdir /srv/www/web1/html/redraft-neu/test/rss/] RewriteCond: input='/' pattern='!"index.php"' => matched
84.149.254.249 - - [07/Feb/2007:15:25:33 +0100] [rss.redraft.de/sid#801cf588][rid#805bf628/initial] (2) [perdir /srv/www/web1/html/redraft-neu/test/rss/] rewrite 'https://rss.redraft.de/auto.htm' -> 'index.php?search_word=auto&search=1'
84.149.254.249 - - [07/Feb/2007:15:25:33 +0100] [rss.redraft.de/sid#801cf588][rid#805bf628/initial] (3) split uri=index.php?search_word=auto&search=1 -> uri=index.php, args=search_word=auto&search=1
84.149.254.249 - - [07/Feb/2007:15:25:33 +0100] [rss.redraft.de/sid#801cf588][rid#805bf628/initial] (3) [perdir /srv/www/web1/html/redraft-neu/test/rss/] add per-dir prefix: index.php -> /srv/www/web1/html/redraft-neu/test/rss/index.php
84.149.254.249 - - [07/Feb/2007:15:25:33 +0100] [rss.redraft.de/sid#801cf588][rid#805bf628/initial] (2) [perdir /srv/www/web1/html/redraft-neu/test/rss/] strip document_root prefix: /srv/www/web1/html/redraft-neu/test/rss/index.php -> /index.php
84.149.254.249 - - [07/Feb/2007:15:25:33 +0100] [rss.redraft.de/sid#801cf588][rid#805bf628/initial] (1) [perdir /srv/www/web1/html/redraft-neu/test/rss/] internal redirect with /index.php [INTERNAL REDIRECT]
84.149.254.249 - - [07/Feb/2007:15:25:33 +0100] [rss.redraft.de/sid#801cf588][rid#805d6860/initial/redir#1] (2) init rewrite engine with requested uri /index.php
84.149.254.249 - - [07/Feb/2007:15:25:33 +0100] [rss.redraft.de/sid#801cf588][rid#805d6860/initial/redir#1] (1) pass through /index.php
84.149.254.249 - - [07/Feb/2007:15:25:33 +0100] [rss.redraft.de/sid#801cf588][rid#805d6860/initial/redir#1] (3) [perdir /srv/www/web1/html/redraft-neu/test/rss/] strip per-dir prefix: /srv/www/web1/html/redraft-neu/test/rss/index.php -> index.php
84.149.254.249 - - [07/Feb/2007:15:25:33 +0100] [rss.redraft.de/sid#801cf588][rid#805d6860/initial/redir#1] (3) [perdir /srv/www/web1/html/redraft-neu/test/rss/] applying pattern '^$' to uri 'index.php'
84.149.254.249 - - [07/Feb/2007:15:25:33 +0100] [rss.redraft.de/sid#801cf588][rid#805d6860/initial/redir#1] (3) [perdir /srv/www/web1/html/redraft-neu/test/rss/] strip per-dir prefix: /srv/www/web1/html/redraft-neu/test/rss/index.php -> index.php
84.149.254.249 - - [07/Feb/2007:15:25:33 +0100] [rss.redraft.de/sid#801cf588][rid#805d6860/initial/redir#1] (3) [perdir /srv/www/web1/html/redraft-neu/test/rss/] applying pattern '([^/]*)\.htm$' to uri 'index.php'
84.149.254.249 - - [07/Feb/2007:15:25:33 +0100] [rss.redraft.de/sid#801cf588][rid#805d6860/initial/redir#1] (1) [perdir /srv/www/web1/html/redraft-neu/test/rss/] pass through /srv/www/web1/html/redraft-neu/test/rss/index.php
 
Zuletzt bearbeitet:
ahja verstehe warum ich nix verstanden hab :LOL: das macht in meinen augen kein bis null sinn...

aber deine rwriterule sieht jetzt korrekt aus... (zwar find ich permanently moved fehl am platz, aber ja siehe oben) vorher hats ja überhaupt kein sinn ergeben.
 
Auf sone Antwort habsch gewartet :mrgreen:

Ne Spaß bei Seite habs gelöst.

Also im (x)html dem form Tag im attribut action ein / geben.

Und dann folgenden code:
Code:
RewriteRule ([^/]*)\.htm$ index.php?search_word=$1&search=1 [L]

RewriteCond %{QUERY_STRING} !""
RewriteCond %{QUERY_STRING} ^search_word=([^&]*)
RewriteRule ^$ /%1.htm? [R=301,L]

Logischer Denkfehler:
Klar erst wird Rule gecheckt ==> passt nicht
RewriteCond matched und leitet um ==> ergo ne neue Request URI
Dann geht es von vorn los RewriteRule matched diesmal, und wegen dem L Flag ists die letzte Ausführung.

Passt wackelt und hat Luft 8)
 
und verrätst du auch noch für was das sein soll? was das bringen soll? bis jetzt bringts in meinen augen nur 1request mehr pro suche... ahhh jetzt weiß ichs logfiles manipulieren :LOL: oder doch nen server belastungs test? :ugly:
 
Lol hä wie jetzt sag mir bloß du magst die Querystring links als ?bla=juhuu&blubb=1

Das ist ein Suchformular.

Man kann nun nach News suchen indem man wie bei PHP net einfach ein oder mehrere Worte anhängt. Aber ohne stumpfsinnige Get Parameter zu haben.
Das hat nix mit Logfiles faken Belastungstest oder dergleichen zu tun;) aber wenn du ne andere idee hast wie man das realisieren kann bitte, ich habe immer ein offenes Ohr.