2017-10-29 16 views
0

の.htaccess avalible $ _SERVER [ 'REDIRECT_REQUEST_URI']なしに上書きされて

Options +FollowSymlinks 
RewriteEngine On 
RewriteCond %{SCRIPT_FILENAME} !-d 
RewriteCond %{SCRIPT_FILENAME} !-f 
RewriteRule ^cars/(.*).html$ /control.php [P,L] 
RewriteRule ^trucks/(.*).html$ /control.php [P,L] 

/control.php

<pre> 
<?php 
    echo "Path Requested: " . $_SERVER['REQUEST_URI'] . "\n\n"; 
    print_r($_SERVER); 
?> 
</pre> 

テストURL(実際のホスト名を "example.com"に置き換え)

(期待し、必要に応じて)、ブラウザのアドレスバー内の表示URLがあること

結果

Path Requested: /control.php 

Array 
(
    [CONTEXT_DOCUMENT_ROOT] => /home/fubelboobin/public_html 
    [CONTEXT_PREFIX] => 
    [DOCUMENT_ROOT] => /home/fubelboobin/public_html 
    [GATEWAY_INTERFACE] => CGI/1.1 
    [HTTP_ACCEPT] => text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8 
    [HTTP_ACCEPT_ENCODING] => gzip, deflate 
    [HTTP_ACCEPT_LANGUAGE] => en-US,en;q=0.8,gl;q=0.6 
    [HTTP_CACHE_CONTROL] => max-age=0 
    [HTTP_CONNECTION] => close 
    [HTTP_HOST] => fubelboobin.com 
    [HTTP_UPGRADE_INSECURE_REQUESTS] => 1 
    [HTTP_USER_AGENT] => Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36 
    [HTTP_X_FORWARDED_FOR] => 23.241.124.74 
    [HTTP_X_FORWARDED_HOST] => fubelboobin.com 
    [HTTP_X_FORWARDED_SERVER] => fubelboobin.com 
    [PATH] => /bin:/usr/bin 
    [QUERY_STRING] => 
    [REDIRECT_STATUS] => 200 
    [REMOTE_ADDR] => 166.62.119.108 
    [REMOTE_PORT] => 47854 
    [REQUEST_METHOD] => GET 
    [REQUEST_SCHEME] => http 
    [REQUEST_URI] => /control.php 
    [SCRIPT_FILENAME] => /home/fubelboobin/public_html/control.php 
    [SCRIPT_NAME] => /control.php 
    [SERVER_ADDR] => 166.62.119.108 
    [SERVER_ADMIN] => [email protected] 
    [SERVER_NAME] => fubelboobin.com 
    [SERVER_PORT] => 80 
    [SERVER_PROTOCOL] => HTTP/1.1 
    [SERVER_SIGNATURE] => 
    [SERVER_SOFTWARE] => Apache 
    [UNIQUE_ID] => [email protected] 
    [PHP_SELF] => /control.php 
    [REQUEST_TIME_FLOAT] => 1509237121.06 
    [REQUEST_TIME] => 1509237121 
    [argv] => Array 
     (
     ) 

    [argc] => 0 
) 

注:

http://example.com/trucks/valugatah.html 

だから、問題は何ですか?

私は/control.php

を返して、あなたが私の投稿結果$_SERVER['REQUEST_URI']から見ることができるよう$_SERVER['REQUEST_URI']が、私はしかし/trucks/valugatah.htmlの元のURLでアドレスバーに見るものと同じであることを期待していますthe docsによれば、$_SERVER['REQUEST_URI']が上書きされた場合、元の$_SERVER['REQUEST_URI']を保持する新しいvar(自動的に作成された)$_SERVER['REDIRECT_REQUEST_URI']にアクセスする必要がありますが、の結果、から見ることができます。は決して作成されません。 .htaccessファイルの中から「P」のフラグを削除

+0

おそらく 'P'フラグとは何か...あなたはここのためにとにかく、それは標準の「プリティURLの一部ではないことを何を使っています"セットアップ... – CBroe

+0

@CBroe - アイデアをありがとう!それはうまくいった。 – Pseudo

答えて

0

私は最後の2日間で見つけることができるすべてのものを読んだ、と私は何も得なかっまし

は...それを解決しました。ここでは、作業コードは次のとおりです。

の.htaccess

Options +FollowSymlinks 
RewriteEngine On 
RewriteCond %{SCRIPT_FILENAME} !-d 
RewriteCond %{SCRIPT_FILENAME} !-f 
RewriteRule ^cars/(.*).html$ /control.php [L] 
RewriteRule ^trucks/(.*).html$ /control.php [L] 
関連する問題