Nelze použít odkaz s *
Příklad - http://localhost/photo_gallery/public/show_c.html/color-1*
Požadovaná adresa URL nebyla na tomto serveru nalezena. Ostatní fungují color-3
, wood
, atd.
vygenerovaná mapa -
map.txt
title id color-1* 1 color-1** 2 color-3 3 wood 4 color777 5 color-test 6
htaccess
RewriteRule ^show_c.html/([-\w]+)$ show_c.php?cat=${catcolors:$1} [L]
httpd.conf
RewriteMap catcolors 'txt:C:\wamp\www\photo_gallery\public\maps\map.txt'
Moje otázka. Proč odkaz s *
nelze použít.
RewriteRule ^show_c.html/([-\w]+)$ show_c.php?cat=${catcolors:$1} [L]
Regulární výraz [-\w]+
nesouhlasí *
, takže vzor se nikdy neshoduje s požadovanou cestou URL a hodnota se nikdy nevyhledá v přepisovací mapě.
Zkuste místo toho následující:
RewriteRule ^show_c\.html/([-*\w]+)$ show_c.php?cat=${catcolors:$1} [L]
Doslovný *
ve třídě znaků regulárního výrazu nemusí být zpětné lomítko, protože zde nemá žádný zvláštní význam. (Ale nezapomeňte zpětně lomítkem uniknout doslovné tečky v jiných částech regulárního výrazu.)
Konkrétně regex [-*\w]+
odpovídá 1 nebo více z následujících položek:
-
(pomlčka), *
(hvězdička), a-z
, A-Z
, 0-9
a _
(podtržítko)
- Věděl jsem, že musím někam přidat *. Ještě jednou moc děkuji.
- Nemáš zač. Právě jsem aktualizoval svou odpověď s tím, co vlastně odpovídá.
- 1 živě
http://mantykora.cleoni.com:8080/photo_gallery/public/show_c.html/color-1*
s tímRewriteRule ^show_c\.html/([-*\w]+)$ show_c.php?cat=${catcolors:$1} [L]