Es nevaru izmantot saiti ar * Piemērs - http://localhost/photo_gallery/public/show_c.html/color-1* Pieprasītais URL šajā serverī netika atrasts. Pārējie strādā color-3, woodutt.

  1. ģenerēta karte - 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' 

Mans jautājums. Kāpēc saite ar * nevar izmantot.

RewriteRule ^show_c.html/([-\w]+)$ show_c.php?cat=${catcolors:$1} [L] 

Regex [-\w]+ nesakrīt *, tāpēc modelis nekad neatbilst pieprasītajam URL ceļam, un vērtība nekad netiek meklēta pārrakstīšanas kartē.

Tā vietā izmēģiniet šādas darbības:

RewriteRule ^show_c\.html/([-*\w]+)$ show_c.php?cat=${catcolors:$1} [L] 

Burtiskais * regex rakstzīmju klasē nav jāizvairās no aizmugures slīpsvītras, jo šeit šeit nav īpašas nozīmes. (Bet neaizmirstiet ar atpakaļgaitas slīpsvītru izvairīties no burtiskiem punktiem citās regex daļās.)

Konkrēti, regex [-*\w]+ atbilst vienam vai vairākiem no šiem:
- (defise), * (zvaigznīte), a-z, A-Z, 0-9 un _ (pasvītrojums)

  • Es zināju, ka man kaut kur jāpievieno *. Vēlreiz liels paldies.
  • Nav par ko. Es tikko atjaunināju savu atbildi ar to, kas tā patiesībā sakrīt.
  • 1 tiešraide http://mantykora.cleoni.com:8080/photo_gallery/public/show_c.html/color-1* ar šo RewriteRule ^show_c\.html/([-*\w]+)$ show_c.php?cat=${catcolors:$1} [L]

strādāja par jums: Charles Robertson | Vēlies ar mums sazināties?