WN

WN (https://www.wn.se/forum/index.php)
-   Serversidans teknologier (https://www.wn.se/forum/forumdisplay.php?f=4)
-   -   mod_rewrite (https://www.wn.se/forum/showthread.php?t=1068208)

xpat 2017-05-10 09:12

mod_rewrite
 
Jag sliter med en mod_rewrite...
Jag har en url med en parameter: foobar=$A_value
Jag skall skriva om den till en URL med en annan parameter men samma value: HelloWorld=$A_value

Får inte till det, någon som har en idé??

xpat 2017-05-10 09:43

Ett klargörande, jag får med värdet, men urlen jag får är:
URL/?HelloWorld=$A_value&foobar=$A_value
dvs. den både plockar värdet och lägger till en extra parameter.

Såhär ser det ut i .htaccess:
RewriteCond %{THE_REQUEST} \?foobar=(\d+) [NC]
RewriteRule (.*) URL/?HelloWorld=%1 [QSA,NC,NE,L,R=301]

xpat 2017-05-11 07:29

Det löste sig...

fabian 2017-05-11 07:49

Hur löste du det? Kan vara bra att dela med sig av om någon annan behöver svaret.

Här är ett sätt att lösa det


Input: http://www.wn.se/?foobar=hej

Kod:

RewriteCond %{QUERY_STRING} ^(.*)foobar(.*)$
RewriteRule ^(.*)$ $1?%1HelloWorld%2 [R=301,L]

Output: http://www.wn.se/?HelloWorld=hej

xpat 2017-05-15 07:44

Citat:

Ursprungligen postat av fabian (Inlägg 20523115)
Hur löste du det? Kan vara bra att dela med sig av om någon annan behöver svaret.

Här är ett sätt att lösa det


Input: http://www.wn.se/?foobar=hej

Kod:

RewriteCond %{QUERY_STRING} ^(.*)foobar(.*)$
RewriteRule ^(.*)$ $1?%1HelloWorld%2 [R=301,L]

Output: http://www.wn.se/?HelloWorld=hej

Sant, klart man ska! :)

RewriteCond %{REQUEST_URI} ^(.*)/sista-delen-av-urlen-före-parametern
RewriteCond %{QUERY_STRING} gammalparamter=([0-9]+)
RewriteRule ^(.*)$ /nysökväg?nyparameter=%1 [R=301,L]

Först kollar man sökvägen - REQUEST_URI - Sen kollar man parametern - QUERY_STRING
Sen kan man göra rewriten.


Alla tider är GMT +2. Klockan är nu 19:51.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson