Zastanawiałem się, czy można sprawdzić, czy mod_rewrite
jest włączona na Apache I IIS w PHP
.
Istnieje ModRewrite dla usług IIS. Sprawdź to here
.
Więc szukam skryptu PHP, który sprawdza mod_rewrite
się na Apache i IIS.
Czy ktoś zna taki skrypt lub może go napisać?
Specjalnie dla Microsoft IIS .
Dzięki!
php
apache
mod-rewrite
iis
Krawaty
źródło
źródło
mod_rewrite
jest zainstalowany. Moduł IIS Mod-Rewrite , o którym prawdopodobnie mówisz, jest zupełnie innym i komercyjnym produktem - nie ma związku z modułem Apache, to zupełnie inne pytanie i nie mam doświadczenia w jego używaniu.phpinfo()
może być przydatny do wielu rzeczy, ale jeśli chcesz napisać system, który używa,mod_rewrite
jeśli jest włączony, lub w inny sposób odwraca się do innego zachowania, warto to wykryć programowo.Skopiuj ten fragment kodu i uruchom go, aby się dowiedzieć.
źródło
Podoba mi się rozwiązanie Christiana Roya :
Następnie możesz sprawdzić w swoim kodzie PHP
Nie mam pojęcia, czy działa to również z IIS (nie mam możliwości sprawdzenia), ale szanse są dobre.
źródło
<IfModule mod_env.c>
tym byłoby prawie idealne. :)Prześlij plik o nazwie info.php z tym kodem i uruchom go:
Wyszukaj mod_rewrite na stronie i sprawdź, czy możesz go znaleźć w sekcji Loaded Modules.
źródło
nie utrudniaj tego tak, że możesz po prostu znaleźć
phpinfo();
Mam nadzieję, że pomocna!
Dzięki
źródło
za pomocą wiersza poleceń możemy to zrobić w centOs
źródło
Zajrzyj do sekcji Konfiguracja w apache2handler w wierszu Loaded Modules.
To jest proste i działa.
źródło
To jest moja obecna metoda sprawdzania, czy Mod_rewrite jest włączony zarówno dla Apache, jak i IIS
Działa na moim komputerze lokalnym, a także na moim hoście internetowym opartym na IIS. Jednak na konkretnym serwerze Apache nie działało to dla Apache, ponieważ apache_get_modules () była wyłączona, ale mod_rewrite był włączony na tym serwerze.
źródło
Możesz uzyskać listę zainstalowanych modułów Apache i sprawdzić ją. Być może możesz sprawdzić, czy jest zainstalowany, wyszukując jego plik .dll (lub odpowiednik systemu Linux).
źródło
Dwie linie kodu:
źródło
Jeszcze jedna metoda
exec()
.Jeśli
mod_rewrite
jest załadowany, na wyjściu zwróci "rewrite_module".źródło
Innym pomysłem, w istocie bardziej brudnym hackem, dotyczącym przepisywania modów jest zależność od serwera i niepotrzebny problem z php: Dlaczego nie, jeśli masz taką możliwość, stwórz katalog testowy, umieść w nim .htaccess, przepisując do test.php, wywołaj katalog przez http i sprawdź, czy otrzymujesz oczekiwany wynik, który umieściłeś w test.php.
Rzeczywiście, brudny.
źródło
Użyj tej funkcji:
źródło
Co powiesz na przekierowanie do znanego pliku, a następnie sprawdzenie, czy to przekierowanie faktycznie działa z curl?
źródło
Dla bohaterów i heroin IIS:
Nie musisz szukać mod_rewrite. Wystarczy zainstalować moduł Rewrite 2 , a następnie zaimportować pliki .htaccess .
źródło