Následuje obsah souboru .htaccess

 Options +FollowSymLinks Options +Indexes RewriteEngine On RewriteBase / RewriteCond %{HTTP_HOST} ^(.+)\.example\.org$ [NC] RewriteRule ^(.*)$ http://example.org/%1 [L]  

Mým cílem je mapovat všechny subdomény do složek. Například pokud a1.example.org je otevřen, měl by zobrazit obsah souboru example.org/x1. Adresa URL by se ale neměla měnit.

Ale kdykoli otevřu a1.example.org URL se automaticky mění. Jak tomu mohu zabránit?

Nemůžete použít absolutní adresy URL

RewriteCond %{HTTP_HOST} ^(.+)\.example\.org$ [NC] RewriteRule ^(.*)$ /%1 [L] 
  • To předpokládá, že subdoména i hlavní doména směřují na stejné místo v souborovém systému.
  • AFAIK je rozdíl mezi $ 1 a% 1. První pochází z regexp v RewriteRule, druhé - v RewriteCond.
  • Ano, to nezpochybňuji - vaše směrnice vypadají správně. Jak je však uvedeno výše, bude to fungovat pouze v případě, že subdoména a hlavní doména směřují na stejné místo (tj. Na kořen dokumentu hlavní domény) - což často ne. Tak, a1.example.com/a1 (ekvivalentní cesta k souborovému systému) musí být přístupná. Jen říkám.
  • Není to stejné místo, ale podsložka;), ale ano - máte tu bod

Zní to, jako byste chtěli reverzní proxy. Naštěstí existuje vlajka, jak to udělat.

Musíte tedy povolit mod_proxy a přidat P do RewriteRule vlajky.

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