Htaccess rewritecond herskryf geval vlak 2 gids = info
-
05-07-2019 - |
Vra
Ek wou .htaccess
stel om te herskryf:
example.com/bla/info/
na
example.com/info/index.php?q=bla
example.com/bla/info/txt/
na
example.com/info/index.php?q=bla&t=txt
Ek wou die leser nog vertoning:
example.com/bla/info/txt/
Ek wou nie te herskryf in die vlak 2 herskryf, soos:
example.com/bla/xxx/
of
example.com/ccc/zzz/aaa/
maar
example.com/silly/info/
sou so goed werk as
example.com/strange/info/mytxt/
Het hierdie sin?
Enige hulp?
Oplossing
As jy jou patroon begin met ^ en eindig dit met $, die reël is slegs van toepassing indien die hele string wedstryde.
RewriteRule ^/bla/info/$ /info/index.php?q=bla
RewriteRule ^/bla/info/txt/$ /info/index.php?q=bla&t=txt
As jy gebruik maak nie gebruik van die opsie [R], die bedrag wat in die leser URL sal wees ongeag die gebruiker aangegaan.
Is jy probeer om hierdie algemene-doel te maak? Indien wel, kan jy regex-tipe opname en veranderlike vervanging gebruik. Maak 'bla "match any string tot die volgende streep (/), gebruik
([^/]+)
in jou patroon en verwys dit met $ 1 in jou vervanging.
RewriteRule ^/([^/]+)/info/$ /info/index.php?q=$1
RewriteRule ^/([^/]+)/info/([^/]+)/$ /info/index.php?q=$1&t=$2
Ek beveel die Apache web bladsye oor mod_rewrite vir meer inligting .
[wysig. Vaste die reëls te sluit nie die naam gasheer in die patroon, as die oorspronklike plakkaat uitgepluis het.]
-
BMB
Ander wenke
jy het my in die regte pad.
Ek het uiteindelik met iets soos hierdie:
RewriteRule ^([^/\.]+)/info/?$ example/info/index.php?q=$1 [L]
Thanks a lot