Autor | Zpráva | ||
---|---|---|---|
radekt Profil |
#1 · Zasláno: 25. 11. 2016, 07:33:09
Ahoj,
nahradil jsem v názvech souborů a složek podtržítka za pomlčky. Našel jsem, jak přesměrovat zastaralé odkazy s podtržítky z jiného webu: RewriteEngine On RewriteRule ^([^_]*)_([^_]*_.*) $1-$2 [N] RewriteRule ^([^_]*)_([^_]*)$ /$1-$2 [L,R=301] Nepodařilo se mi ale zprovoznit ani nikde najít i přesměrování složek, tedy aby se tvar: web/slozka_1/soubor_1 přesměroval na: web/slozka-1/soubor-1 Ta hloubka může být libovolná, např.: web/slozka_1/podslozka_1/soubor_1 atd. Nevíte někdo? Díky |
||
Kajman Profil |
#2 · Zasláno: 25. 11. 2016, 08:20:43
Snad jen v prvním pravidlem za druhou závorkou by mohl být dolar a v druhém přesměrování mít navíc flag NE, jinak by to na první pohled mělo fungovat. Pro testování bude lepší 302.
RewriteEngine On RewriteRule ^([^_]*)_([^_]*_.*)$ $1-$2 [N] RewriteRule ^([^_]*)_([^_]*)$ /$1-$2 [L,R=302,NE] Pravidla musí být zapnutá pro celý web a nesmí existovat vlastní pravidla ve slozka_1. |
||
radekt Profil |
#3 · Zasláno: 25. 11. 2016, 08:40:05
Kajman:
Děkuji moc! Přesně to jsem potřeboval. Před chvílí jsem objevil ještě další kód: RewriteEngine On RewriteRule ^([^_]*)_(.*)$ /$1-$2 [R=301,L] ten také funguje. |
||
Kajman Profil |
#4 · Zasláno: 25. 11. 2016, 09:16:59
Ve verzi z [#3] se ale provede tolik přesměrování, kolik tam bylo podtržítek.
Správně by asi mělo být RewriteRule ^([^_]*)_([^_]*_.*)$ $1-$2 [L] RewriteRule ^([^_]*)_([^_]*)$ /$1-$2 [L,R=302,NE] Protože pokud se změní url, tak se pravidla prochází znovu (interně) a flag N netřeba (ten asi zlobil a násobil cestu). |
||
radekt Profil |
#5 · Zasláno: 25. 11. 2016, 09:31:50
Kajman:
Otestoval jsem, použiji tedy doporučenou variantu #4. Ještě jednou díky. |
||
Kajman Profil |
#6 · Zasláno: 25. 11. 2016, 09:55:15
Po otestování (klidně až za pár dní) změnte 302 na 301.
|
||
Časová prodleva: 8 let
|
0