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.

  1. vygenerovaná mapa - map.txt

    title id color-1* 1 color-1** 2 color-3 3 wood 4 color777 5 color-test 6 
  2. htaccess

    RewriteRule ^show_c.html/([-\w]+)$ show_c.php?cat=${catcolors:$1} [L] 
  3. 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ím RewriteRule ^show_c\.html/([-*\w]+)$ show_c.php?cat=${catcolors:$1} [L]

Pracoval pro vás: Charles Robertson | Chcete nás kontaktovat?