Back to Question Center
0

Sémant mod_rewrite neprepíše žiadosti o konkrétny adresár

1 answers:

Mám veľa písomných pravidiel napísaných v mojom . htaccess . Avšak pre požiadavky na určitý adresár a jeho podadresár, napríklad wordpress , nechcem používať forwardové pravidlá - feuille d horaire de travail banque.

     RewriteEngine OnRewriteCond% {REQUEST_URI} wordpress
RewriteRule ^. * $ - [NC, L]RewriteRule RewriteRule RewriteRule RewriteRule     

Samozrejme to nefunguje. Ako mám upraviť druhý riadok?

February 8, 2018

Toto by malo fungovať pre jeden adresár (napríklad váš adresár wordpress)

  RewriteRule ^ wordpress /. $ - [PT] 

Ak chcete mod_rewrite ignorovať všetky adresáre, skúste niečo také

  RewriteCond% {REQUEST_FILENAME} -d [NC]
RewriteRule. * - [L] 

RewriteCond je pravda, ak cesta je adresár a pravidlo prestane prepísať spracovanie. Nezabudnite to uviesť na začiatku vášho súboru pravidiel.

Ako poznamenáva LazyOne, váš príklad by mal pracovať viac či menej. (To znamená, že by sa to mohlo zhodovať s niektorými adresami URL, ktoré ste nezamýšľali, ale malo by skutočne zabrániť tomu, aby boli všetky adresy URL obsahujúce wordpress prepísané. ) Spôsob, akým by som odporučil písať, je toto:

  RewriteEngine On
RewriteBase /RewriteRule ^ wordpress / - [L]# ďalšie pravidlá prepisovania tu  

Zabránite tak prepísaniu všetkých ciest URL začínajúcich slovami wordpress / . Ak tiež chcete zabrániť prepísaniu http: // www. yoursite. com / wordpress bez koncového lomítka, môžete preň pridať samostatné pravidlo:

  RewriteRule ^ wordpress $ - [L] 
/ v prvom pravidle vyššie s (/ | $) .