Sök…


Anmärkningar

Detta ämne beskriver de två sammanhang där RewriteRule kan användas. I exempel som utelämnar RewriteEngine on antas det att detta direktiv har inträffat före exemplet.

Omskriva regler i sammanhanget per katalog

Kontextet per katalog är en del av den statiska konfigurationsfilen mellan <Directory> och </Directory> taggar. Hela innehållet i dynamiska konfigurationsfiler ligger inom katalogen per katalog för den mapp där .htaccess finns.

RewriteRule i sammanhang per katalog matchar den del av en url efter protokollet, värdnamn, port och prefix för katalogen där de finns, och före frågesträngen.

I den statiska konfigurationsfilen

När följande regel används på url http://example.com/foo?id=1 , matchas regexen i det första argumentet i RewriteRule mot foo . Protokollet ( http ), värdnamnet ( example.com ) och prefixet för den här katalogen ( / ) tas bort. I den andra änden tas även frågesträngen ( ?id=1 ) bort.

<Directory "/">
  RewriteRule ^foo$ bar [L]
</Directory>

I följande exempel, med hjälp av url http://example.com/topic/15-my-topic-name , skulle det första argumentet från RewriteRule matchas mot topic/15-my-topic-name :

<Directory "/topic/">
  RewriteRule ^topic/([0-9]+)-[^/]*/?$ topics.php?id=$1 [L]
</Directory>

I den dynamiska konfigurationsfilen

När följande regel placeras i en .htaccess fil som finns i mappen www-root och sedan används på url http://example.com/foo?id=1 , matchas den första regexen mot foo .

RewriteRule ^foo$ bar [L]

I sammanhang per katalog startar den matchade url aldrig med a / . I ett sådant sammanhang kommer ett direktiv som börjar med RewriteRule ^/ aldrig att matcha någonting.

Omskriva regler i virtuell värdkontext

Det virtuella värdkontextet är en del av den statiska konfigurationsfilen mellan <VirtualHost> och </VirtualHost> taggarna.

RewriteRule 's i virtuell värdkontext matchar den del av en url efter protokollet, värdnamn och port och före frågesträngen.

När följande regel används för url http://example.com/foo?id=1 , matchas regexet i det första argumentet i RewriteRule mot /foo .

<VirtualHost 1.2.3.4:80>
  ServerName example.com

  RewriteEngine on
  RewriteRule ^/foo$ /bar [L]
</VirtualHost>


Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow