2013-12-13 13 views
7

Dodałem .htaccess (do przepisywania adresów URL) w katalogu głównym mojego projektu, ale nie działa. Sprawdziłem dwa razy, ten sam plik działa poprawnie w Eclipse.Skonfiguruj PhpStorm do użycia .htaccess

Jak skonfigurować program PhpStorm do używania .htaccess?

+1

Co masz na myśli? Czego można się spodziewać po PHPStorm? –

+0

Załóżmy, że w katalogu głównym znajduje się plik 'tmp.php', a następnie napiszę regułę przepisywania w .htaccess ' RewriteRule^tmp /? $ Tmp.php'. Po wpisaniu 'http: // localhost/mysite/tmp' nie jest przekierowanie do' http: // localhost/mysite/tmp.php' To rzucić 404 – Cody

+0

Po wpisaniu, że jeżeli w przeglądarce? Nie jestem pewien, jak IDE gra w to? –

Odpowiedz

1

Czy używasz tego samego serwera/konfiguracji podczas pracy z PhpStorm i Eclipse?

Jak wyjaśniono w komentarzach, nie ma to nic wspólnego z IDE, ale z serwerem WWW (Apache) i jego konfiguracją.

Możesz edytować .htaccess z dowolnym edytorem, jeśli ta konfiguracja katalogu virtualhost/katalog ma AllowOverride All, ModRewrite jest włączona i twoje reguły przepisywania są poprawne, to będzie działać dobrze.

Musisz upewnić się, że pliki PHP są dostarczane z poprawnie skonfigurowanego serwera WWW.

+0

Używam PHP wbudowanego serwera WWW, staram się zmienić mój domyślny plik indeksu za pomocą htaccess, ale to nie działa – Shqear

+1

wbudowany serwer WWW @Shqear nie ma wsparcia dla '.htaccess'. – CrazyCoder

+0

@CrazeCoder yup Właśnie pomyślałem, że udało mi się użyć skryptu routera PHP zamiast tego, jak opisano w poście Victora – Shqear

2
  1. Rzeczywiście, PHP's built-in web server will never fully support .htaccess features. Uwaga: jest to PHP, nie jest to wbudowany serwer PHPStorm.

Ale jest jakaś droga.

  1. W większości przypadków przepisywania są potrzebne tylko do przekierowania wszystkich niestatycznych zapytań do plików do index.php. Jeśli potrzebujesz tego tylko, you can set the server's "router script" w konfiguracji PHPStorm uruchom na index.php.

  2. Po tym, skromny hack w index.php do serwowania plików statycznych z dysku może przyspieszyć rzeczy.

Dodaj do samego początku index.php:

if (preg_match('/\.(?:php|png|jpg|jpeg|gif|ico|css|js)\??.*$/', 
    $_SERVER["REQUEST_URI"])) 
{ 
    return false; // serve the requested resource as-is. 
}