2014-11-21 5 views
1

이해가 안됩니다. 내 .htaccess에서 404 오류를 설정하고 내가 http://{localhost}/mywebiste/xxx/xxx/xxx/xxx/404 오류 - 정의되지 않은 색인 : REDIRECT_URL

뭔가를 입력하지만이 오류를 얻을 때, error.php에 대한

Notice: Undefined index: REDIRECT_URL in C:\... 
Notice: Undefined index: REDIRECT_STATUS in C:\... 

,

$_SERVER["REDIRECT_URL"]; 
$_SERVER['REDIRECT_STATUS']; 

htaccess로,

을 리디렉션
RewriteEngine on 
ErrorDocument 404 http://{localhost}/projects/.../error.php 

error.php,

$redirect_url = $_SERVER["REDIRECT_URL"]; 
$status = $_SERVER['REDIRECT_STATUS']; 

아이디어가 있으십니까? 2

1

은 또한, 나는 EasyPHP Devsever에있어,

나는이 두 사이트에서 코드를 시도하고 그들 중 누구도 작동하지 않습니다. 내가 거기

Array 
(
    [TMP] => C:/Program Files (x86)/EasyPHP-DevServer-14.1VC11/binaries/tmp 
    [HTTP_HOST] => localhost 
    [HTTP_USER_AGENT] => Mozilla/5.0 (Windows NT 6.1; WOW64; rv:33.0) Gecko/20100101 Firefox/33.0 
    [HTTP_ACCEPT] => text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 
    [HTTP_ACCEPT_LANGUAGE] => en-GB,en;q=0.5 
    [HTTP_ACCEPT_ENCODING] => gzip, deflate 
    [HTTP_COOKIE] => PHPSESSID=204j1jvbinr4j1i0ebg9eq0ue5 
    [HTTP_CONNECTION] => keep-alive 
    [PATH] => C:\Program Files (x86)\EasyPHP-DevServer-14.1VC11\binaries\php\php_runningversion;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files\WIDCOMM\Bluetooth Software\;C:\Program Files\WIDCOMM\Bluetooth Software\syswow64;\;C:\Program Files (x86)\Sony\VAIO Startup Setting Tool;C:\Program Files (x86)\Common Files\Roxio Shared\10.0\DLLShared\;C:\Program Files (x86)\Common Files\Roxio Shared\DLLShared\;C:\Program Files (x86)\QuickTime\QTSystem\;C:\Program Files\Java\jdk1.8.0_05\bin;C:\Program Files\nodejs\;C:\Program Files (x86)\Git\cmd;C:\Users\lau_thiamkok\AppData\Roaming\npm;C:\Program Files\nodejs;C:\Program Files (x86)\Git;C:\PROGRA~2\EASYPH~1.1VC\Apache\bin;C:\PROGRA~2\EASYPH~1.1VC\PHP 
    [SystemRoot] => C:\Windows 
    [COMSPEC] => C:\Windows\system32\cmd.exe 
    [PATHEXT] => .COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC 
    [WINDIR] => C:\Windows 
    [SERVER_SIGNATURE] => 
    [SERVER_SOFTWARE] => Apache/2.4.7 (Win32) PHP/5.5.8 
    [SERVER_NAME] => localhost 
    [SERVER_ADDR] => 127.0.0.1 
    [SERVER_PORT] => 80 
    [REMOTE_ADDR] => 127.0.0.1 
    [DOCUMENT_ROOT] => C:/Program Files (x86)/EasyPHP-DevServer-14.1VC11/data/localweb 
    [REQUEST_SCHEME] => http 
    [CONTEXT_PREFIX] => 
    [CONTEXT_DOCUMENT_ROOT] => C:/Program Files (x86)/EasyPHP-DevServer-14.1VC11/data/localweb 
    [SERVER_ADMIN] => [email protected] 
    [SCRIPT_FILENAME] => C:/Program Files (x86)/EasyPHP-DevServer-14.1VC11/data/localweb/projects/tests/php-boilerplate/404/basic/error.php 
    [REMOTE_PORT] => 55762 
    [GATEWAY_INTERFACE] => CGI/1.1 
    [SERVER_PROTOCOL] => HTTP/1.1 
    [REQUEST_METHOD] => GET 
    [QUERY_STRING] => code=404 
    [REQUEST_URI] => /projects/tests/php-boilerplate/404/basic/error.php?code=404 
    [SCRIPT_NAME] => /projects/tests/php-boilerplate/404/basic/error.php 
    [PHP_SELF] => /projects/tests/php-boilerplate/404/basic/error.php 
    [REQUEST_TIME_FLOAT] => 1416567060.231 
    [REQUEST_TIME] => 1416567060 
) 

나는이 얻을

print_r($_SERVER); 

을,하지만 내가 the list here에서와 같이 REDIRECT_*이 표시되지 않는 여부를 확인하시기 바랍니다.

내 로컬 호스트에서 REDIRECT_*을 어떻게 얻을 수 있습니까?

+0

을 내가하지 않으면. 리디렉션 할 수 없습니다. – laukok

답변

1

이 같은 인구 두 값을 얻기 위해 전체 http:// 지시 ErrorDocument 404에 사용하지 않도록 할 수 있습니다

ErrorDocument 404 /projects/full/path/to/error.php 

을이 사용하면 채워 이러한 값을 모두 표시됩니다

$_SERVER["REDIRECT_URL"]; // /mywebiste/xxx/xxx/xxx/xxx/ 
$_SERVER['REDIRECT_STATUS']; // 404 
+0

감사합니다. 하지만 나는'404' 대신에'200'을 얻습니다 ... 어떤 아이디어입니까? – laukok

+1

여기서'ErrorDocument 404'를 사용할 때 404가 표시됩니다. '/ projects/full/path/to/error.php'가 다른 재 작성 규칙에 의해 재 작성되지 않는지 확인하십시오. – anubhava

+0

파일에 다른 규칙이 없습니다. – laukok

관련 문제