ugrás a tartalomhoz

Redirect 301 GET érték figyelembevételével

fERI · 2009. Feb. 21. (Szo), 17.21
Sziasztok!

Az alábbi feladatot szeretném megoldalni, de hiába probálkoztam, nem igazán jött össze, így érdeklődnék, hogy ki hogy oldaná meg.

Van egy oldal, melynek az URL felépítése az alábbi: http://www.domain.hu/index.php?inc=101, http://www.domain.hu/index.php?inc=102, stb.

Ezeket az URL-eket szeretném .htaccess és Redirect 301 segítségével az alábbi címekre átirányítani: http://www.domain.hu/valami, http://www.domain.hu/avalami (azaz http://www.domain.hu/index.php?inc=101 URL a http://www.domain.hu/valami URL-re irányítódjon át, a http://www.domain.hu/index.php?inc=102 pedig a http://www.domain.hu/avalami URL-re).

Mivel az inc=101, stb. adatok nem tartalmaznak infót arról, hogy hova kell átirányítani azokat, így mindegyik átirányítást egyenként kell megírnom. Viszont a technikai megvalósításban elakadtam... teljesen mindegy, hogy milyen feltételt állítottam össze, az ?inc=101-es nem vette figyelembe.

Tudna nekem valaki segíteni?

Előre is köszönöm.

Üdv.
fERI
 
1

hogy próbáltad?

gex · 2009. Feb. 21. (Szo), 17.33
teljesen mindegy, hogy milyen feltételt állítottam össze, az ?inc=101-es nem vette figyelembe
ennél írhatnál egy kicsit konkrétabban.

így látatlanban a rewritemap-et tudom ajánlani.
2

Szia! Pl.: próbálkoztam

fERI · 2009. Feb. 21. (Szo), 17.53
Szia!

Pl.: próbálkoztam ezzel, de ez nem megy...

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /.*index2\.php?inc=101\ HTTP/
RewriteRule ^(.*)index2\.php?inc=101$ /valami [R=301,L]

De ha ezt használom (amiben az ?inc=101) nincs benne, akkor megy az átirányítás....

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /.*index2\.php\ HTTP/
RewriteRule ^(.*)index2\.php$ /valami [R=301,L]

A kérdésem az lenne, hogy hogy tudnám a ?inc=101-et a feltételbe beletuszkolni úgy, hogy azt figyelembe is vegye?

Azt, hogy mit hova kell átirányítanom, az inc=101, inc=102, stb. határozza meg...

Előre is köszönöm a segítséget.

Üdv.
fERI
3

Google?

cSuwwi · 2009. Feb. 21. (Szo), 18.22
http://www.webmasterworld.com/apache/3540967.htm
Az utolsó előtti postban lévőt próbáld meg szerintem.
4

Csak egyérték figyelése

fERI · 2009. Feb. 21. (Szo), 19.34
Sziasztok!

Azon gondolkodtam, hogy nekem mindegy, hogy az URL-ben hol van az az érték (mivel azt tudom, hogy az URL végén helyezkedik el), amit figyelnem kell, ha azt tudom érzékelni, akkor már az átirányítás is megoldható lenne. Így az alábbival próbálkoztam, de sajnos sikertelenül:

Redirect 301 ^(.*)101$ http://domain.hu/valami
Redirect 301 ^(.*)102$ http://domain.hu/avalami

Ennek úgy gondolom, hogy mennie kellene, annyi a teljesülendő feltétel, hogy a végén a 101, 102 stimmeljen, ami teljesül is... Az alábbi URL-ekre mennie kellene az átirányításnak: http://domain.hu/index.php?inc=101 vagy http://domain.hu/index2.php?inc=102, stb.

Tud abban valaki segíteni, hogy a fenti példa miért nem akar menni?

Köszönöm a segítséget.

Üdv.
fERI
5

Újabb próbálkozás

fERI · 2009. Feb. 21. (Szo), 19.56
Sziasztok!

Próbáltam ezt is...

RewriteCond %{QUERY_STRING} inc=101
RewriteRule ^.*$ /valami [R=301,L]

Az átirányítás megtörténik, de az eredmény az alábbi lesz:
http://domain.hu/valami?inc=101 lesz. Fél siker, az átirányítás meg van, de nekem az új URL-ben nem kell a ?inc=101, hanem csak a http://domain.hu/valami.

Hogy lehet a query részt eldombi, hogy ne bigyessze az átirányítás végére?

Köszönöm a válaszokat...

Üdv.

fERI
6

kérdőjel

gex · 2009. Feb. 21. (Szo), 20.37
rakj egy kérdőjelet a végére és akkor nem fogja magával vinni a query stringet.

szerk: lehet nem egyértelmű, így gondoltam:
RewriteRule ^.*$ /valami? [R=301,L]
7

Köszönöm

fERI · 2009. Feb. 21. (Szo), 20.39
Szia gex!

Köszönöm, így már megy. Most már csak az lenne a kérdésem, hogy az miért kell oda (valamit nem tudok...). Ennek a ?-nek van valami speciális jelentése az esetemben?

Köszönöm a válasz, és nagyon köszönöm a segítséget.

Üdv.

fERI
8

kérdőjel szerepe

gex · 2009. Feb. 22. (V), 14.07
ha a szabályban nem adsz meg query stringet, akkor a kéréssel érkező query string automatikusan továbbjut. azzal a kérdőjellel egy üres query stringet adsz meg, emiatt az eredetit már nem fogja hozzáfűzni az eredményhez a mod_rewrite. ha esetleg mégis hozzá akarod fűzni (például keresésnél a keresendő szót, vagy a rendezés elvét, vagy a lapozásnál lehet fontos), akkor használhatod a [QSA] paramétert, amivel a kéréssel beérkező paraméterek hozzáadódnak az általad megadottakhoz. erről volt szó a rövid webcímek című cikkben.