To jest dziwne, ale z jakiegoś powodu $_SERVER["SCRIPT_URI"]
nie zwróci nazwy domeny, gdy jestem w podrzędnych/podstronach, ale będzie działać tylko na stronie głównej. Nie jestem pewien, czy jest to spowodowane skryptem (WordPress) czy hostem, ale czy możesz zaproponować jakieś niezawodne rozwiązanie do pobrania nazwy domeny za pomocą PHP?
Odpowiedz
Jeśli potrzebujesz nazwę domeny, należy:
$_SERVER['HTTP_HOST']
Och, ten działał dobrze !! nawet przy przepisywaniu adresu URL. Dzięki –
Może to być spowodowane przepisaniem adresu URL, możesz zamiast tego spróbować $ _SERVER ['REQUEST_URI'], jeśli chcesz, aby ścieżka była wywoływana w adresie URL.
Jeśli wybierzesz tę metodę, pamiętaj, że nagłówki żądań mogą mieć na nią wpływ. –
Rzeczywiście. Napisanie adresu URL. Ale nie chcę ścieżki, chcę tylko sprawdzić nazwę domeny. Dookoła? –
W zależności od tego, co chcesz, bym użyć jednej z następujących czynności:
- $ _SERVER [ 'PHP_SELF'] dla skryptu Lokalizacja pliku
- $ _SERVER [ 'SERVER_NAME'] dla nazwy hosta
EDYCJA: Może PHP_SELF nie jest najlepsze. Zobacz komentarze.
Jak wiem, używanie $ _SERVER ['PHP_SELF'] jest absolutnym ryzykiem. http://is.gd/qPcb – sepehr
Powinieneś raczej użyć '$ _SERVER ['SCRIPT_NAME']' zamiast PHP_SELF. –
przypadku wątpliwości
var_dump($_SERVER);
+1 Najlepsza rada! –
var_dump($_SERVER)
i zobacz, co apartament potrzeb.
P.S. Używanie niesanitalizowanego $_SERVER["PHP_SELF"]
może być security risk.
Jeśli Twoja przeglądarka formatuje JSON
dokumentów ładnie i nie ma wyjścia miało miejsce, dopisując poniższy spowoduje coś bardziej czytelny niż var_dump
:
header('Content-Type: application/json');die(json_encode($_SERVER));
phpinfo()
zapewni również listę wszystkich $_SERVER
wartości i tak wiele więcej!
Również SCRIPT_URI nie istnieje, prawo składnia jest REQUEST_URI:
echo $_SERVER["REQUEST_URI"];
Zwraca całą ścieżkę bez hosta i domeny.
'SCRIPT_URI' niekoniecznie jest błędne. Jest to udokumentowane w dokumentach Apache jako [zmienna środowiskowa utrzymywana przez mod_rewrite] (http://httpd.apache.org/docs/2.2/en/mod/mod_rewrite.html#EnvVar). Jednak, jak ustalił PO, nie zawsze jest on ustalany (z jakiegokolwiek powodu). Ale ... gdy jest ustawiony, to nie jest to samo co "REQUEST_URI". 'SCRIPT_URI' zawiera _absolute URL_, natomiast' REQUEST_URI' to względny URL ("bez hosta i domeny"). – MrWhite
używałem $ _SERVER [SCRIPT_URI] na mojej stronie http://www.a2zidx.com oraz szereg podkatalogów jak http://howto.a2zidx.com
miałem żadnego problemu z tym od lat i dzisiaj masz błąd w wielu miejscach, gdzie $ _SERVER [SCRIPT_URI] nie zostało przypisane. Po skontaktowaniu się z moją sondą oni twierdzą, że nie wprowadzili żadnych zmian, ale $ _SERVER [SCRIPT_URI] już nie działa. getenv ('SCRIPT_URI') nie zawiedzie, ale zwraca łańcuch pusty. Dlaczego tak się stało nagle po tylu latach, nie wiem. Skończyło się na tym, że wywołałem funkcję przechodzenia przez różne opcje, aby wyodrębnić nazwę pliku, co było tym, czego chciałem. Mam nadzieję, że to wszystko obejmuje. Miałem problemy w tym funkcji, ale sprawdzone "SCRIPT_NAME" "PHP_SELF" „SCRIPT_FILENAME "SCRIPT_URI"
nadzieję, że jego pomaga.
Jeśli ktoś wie, dlaczego SCRIPT_URI nagle przestałby działać, chciałbym to wiedzieć. Na serwerze działa obecnie Apache 2.4.
Linki wyglądają bardzo podobnie do spamu. Zastanów się, czy nie zastąpić ich ogólnymi, takimi jak example.com – Norrius
- 1. $ _SERVER ['HTTP_HOST'] nie ustawiono
- 2. Dlaczego ustawienia $ _SERVER ["PHP_AUTH_USER"] i $ _SERVER ["PHP_AUTH_PW"] nie są ustawione?
- 3. PHP: $ _SERVER zmiennych: $ _SERVER [ 'HTTP_HOST'] vs $ _SERVER [ 'SERVER_NAME']
- 4. CGRectMake alternatywny
- 5. PHP: $ _SERVER ['REDIRECT_URL'] vs $ _SERVER ['REQUEST_URI']
- 6. $ _SERVER ['PHP_AUTH_USER'] jest pusty
- 7. PHP $ GLOBALS brakuje $ _SERVER
- 8. PHP $ _SERVER ['REMOTE_ADDR'] pusty
- 9. Cron Job $ _SERVER issue
- 10. Pozycjonowanie obrazu tekst alternatywny
- 11. Czy nie można ustawić $ _SERVER ['HTTP_USER_AGENT']?
- 12. $ _SERVER ['REMOTE_ADDR'] nie podając właściwego adresu IP
- 13. Ustawianie wartości Php $ _SERVER ($ _SERVER ["coś"]) przy użyciu Apache .htaccess
- 14. Jaka jest różnica między $ _SERVER ['PHP_SELF'] a $ _SERVER ['SCRIPT_NAME']?
- 15. apache_request_headers() versus $ _SERVER
- 16. Codeigniter i $ _SERVER
- 17. Wyświetl alternatywny obraz
- 18. : jak włączyć alternatywny ekran?
- 19. Maven - alternatywny katalog .m2
- 20. Alternatywny Photo Alternative Three20?
- 21. JavaScript jeśli alternatywny
- 22. $ _SESSION utworzone, ale nie ma PHPSESSID w $ _SERVER ['HTTP_COOKIE']
- 23. PHP $ _SERVER ['REMOTE_ADDR'] pokazuje IPv6
- 24. Wielofunkcyjny tester alternatywny do system.time
- 25. Czy Aurelia ma alternatywny szablon?
- 26. Alternatywny do PHP exec() funkcji
- 27. Kreator XML wiązania danych alternatywny
- 28. Alternatywny port dla Tomcat (nie 8080) podczas uruchamiania z Maven?
- 29. alternatywny styl wiersza z wiązaniem indeksu $
- 30. Czy $ _SERVER ['REMOTE_USER'] może zostać sfałszowany?
Być może myślałeś o '$ _SERVER ['REQUEST_URI']' – Kzqai
@Kzqai 'SCRIPT_URI' jest udokumentowane w dokumentach Apache jako [zmienna środowiskowa utrzymywana przez mod_rewrite] (http://httpd.apache.org/ docs/2.2/en/mod/mod_rewrite.html # EnvVar) - stąd też powinien on być obecny w superglobalu '$ _SERVER'. Jednak, jak ustalił PO, nie zawsze jest on ustalany (z jakiegokolwiek powodu). – MrWhite