it-swarm-eu.dev

Apache přepisuje pravidla pro vývojovou pracovní stanici a server

Mám vývojáře, kteří upravují stránky pro několik webů ve svazku WAMP a poté nahrávám na veřejné servery, na nichž jsou spuštěny komíny LAMP. Jsme s tím docela spokojeni, ale máme tuto menší nepříjemnost: nemůžeme použít stejné soubory .htaccess ve vývojovém a produkčním prostředí. Na veřejných webech se zdrojová složka mapuje na http://foo.com, http://bar.com atd. Na pracovní stanici vývojáře se zdrojové složky namapují na http://localhost/foo, http://localhost/bar atd. To znamená, že pro veřejné servery potřebuji RewriteBase /, zatímco každý web na pracovní stanici pro vývojáře používá RewriteBase /foo/, RewriteBase /bar/ nebo cokoli jiného.

Existuje nějaký způsob, jak určit RewriteBase vzhledem k souboru .htaccess? Nějaké další nápady, jak zvýšit přenositelnost pravidel pro přepisování?

Pokud jste zvědaví, používám přepisovací pravidla k přesměrování na směrovací kód CakePHP, takže pravidlo vypadá takto:

RewriteRule ^(.*)$ cake_main.php?url=$1 [QSA,L]

Pokud na pracovní stanici pro vývojáře nepoužívám RewriteBase z /foo/, přepíše se místo /cake_main.php do /foo/cake_main.php.

7
Don Kirkby

Mým řešením bylo nepořádek s pravidly přepisu, ale přidání samostatných lokálních domén/hostitelů s falešnými TLD do mého počítače.

To lze provést úpravou souboru C:\Windows\System32\drivers\etc\hosts

Uvědomte si, že v systému Windows 7 (a možná Vista), který tento soubor úspěšně upravíte, musíte spustit textový editor jako správce.

Hostitele můžete přidat pomocí řádků, které vypadají takto:

127.0.0.2       www.mysite.local
127.0.0.3       www.myothersite.local

Jakmile jsou na místě, můžete nakonfigurovat Apache pro tato doménová jména a budete rádi.

To samozřejmě nefunguje při dobrém testování z jiných počítačů v místní síti, ale pokud jste v této situaci, může být lepší použít místní server DNS nebo přiřadit hostitele místním nepřenosným IP adresám a synchronizovat soubory na všech počítačích.

4
JasonBirch