Czy jest to poprawny identyfikator URI dla header('Location: ')
, w szczególności ./
?Przekierowanie PHP 301 do formatu identyfikatora URI
header ('HTTP/1.1 301 Moved Permanently');
header ('Location: ./');
Dziękuję.
Czy jest to poprawny identyfikator URI dla header('Location: ')
, w szczególności ./
?Przekierowanie PHP 301 do formatu identyfikatora URI
header ('HTTP/1.1 301 Moved Permanently');
header ('Location: ./');
Dziękuję.
Musisz użyć absolute URI according to the spec więc coś jak następujące czynności powinny zadziałać:
// check if the server is secure or not to determine URL prefix
if(isset($_SERVER['HTTPS']) and 'on' === $_SERVER['HTTPS']) {
$location = 'https://';
} else {
$location = 'http://';
}
// get the servers base URL
$location .= $_SERVER['SERVER_NAME'] . '/';
// grab the current URI without a file name in it
$location .= dirname($_SERVER['REQUEST_URI']) . '/';
header('Location: ' . $location);
exit();
Dziękuję, Treffynnon. – Francisc
Można również użyć:
header('Location: /', false, 301);
zakładam chcesz przekierować do „głównej”, że byłoby/zamiast ./
Witam, chcę przekierować do katalogu głównego folderu, w którym znajduje się plik zawierający ten kod. W tym konkretnym przypadku jest to także podstawa witryny. Martwię się, ponieważ czytam HTTP/1.1 wymaga bezwzględnej ścieżki. – Francisc
Zgodnie ze standardem wymagany jest bezwzględny adres URL. To zadziała, ale nie będzie ważne –
Jak wspomniano o @Pekka, zobacz http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.30 – Treffynnon
Czy próbujesz dodać ukośny ukośnik do adresów URL? Są lepsze sposoby na zrobienie tego. –
Próbuję przekierować na stałe z pliku zawierającego ten kod do domyślnego pliku (index.something), który jest zawarty w tym samym folderze co plik początkowy, w którym nastąpiło przekierowanie. – Francisc
Powinieneś używać bezwzględnego identyfikatora URI. Zobacz: http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.30 – Treffynnon