2016-12-07 9 views
-1

lamppが最近私のLinuxマシンにインストールされました。ソースファイルは/ opt/lampp/htdocsディレクトリに置く必要があります。 。そう、私はそのようなそのディレクトリを指し示すシンボリックリンクを作成されました:hrefに相対パスを持つリンクタグがある場合の動作が

sudo ln -s /home/medBo/projects /opt/lampp/htdocs 

今、私は次のパスで私のプロジェクトがあります。/ホーム/ medBo /プロジェクト/ eコマース/、すべての作業罰金を

私はこのようなリンクを持っています:

こんにちは
<a href="/test/hello">click here</a> 

私がそのリンクに期待することはハロー/ localhostの/プロジェクト/ eコマース/テストに指摘されるが、私はそれの上にマウスを置くか、私はそれをクリックしたとき、それははlocalhost /テスト/に私を送ります

localhost/projects/ecommerce/は自分のサイトルートと見なされませんか?私はそれについて何ができますか?

がUPDATE:私はこのURLに行くとき

誰かがページの先頭に<base herf="http://localhost/projects/ecommerce">を追加するためのコメントで提案されている、よくこれで問題がある

はlocalhost /プロジェクト/ eコマース/いくつかのコントローラ/いくつかのアクション

とそのページ内へのリンクがあります/ゴーに-他のコントローラ/その他アクション

先になりはlocalhost /プロジェクト/ eコマース/いくつかのコントローラ/何らかのアクション/ゴーに-他のコントローラ/その他アクション

+0

サーバーのドキュメントルートとサイトのWebルートは、2つの異なるものです。 –

+0

@NiettheDarkAbsolそれはどういう意味ですか? – medBo

+1

'/ path/to/url'は' :// /path/to/url'を意味し、 'path/to/url'(先行'/'なし)は' : // //path/to/url' – apokryfos

答えて

0

サイトのルートは常に、あなたのドメイン名(example.comかこの場合はlocalhost)またはIPアドレスです。

パスの末尾が.htaccessによって生成されるかどうかは不明です。

これが実行されている場合は、現在実行中のスクリプトのファイルを$_SERVER["SCRIPT_NAME"]で取得できます。

$url = (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] && !in_array(strtolower($_SERVER['HTTPS']), array('off','no'))) ? 'https' : 'http'; 
$url .= '://'.$_SERVER["HTTP_HOST"]; 
$url .= (substr($_SERVER["SCRIPT_NAME"], 0, -strlen(basename($_SERVER["SCRIPT_NAME"])))); 

これが実行されるスクリプトへのパスを生成しますが、ファイルのファイル名なし:あなたは今のパスを生成することができますPHPで 。今、あなたはパスが事実上.htaccessによって設定されたが、実際のディレクトリですされていない場合には

は、あなたが$_SERVER["REQUEST_URI"]を使用したい場合があり、それ(例えばecho $url . '/path/to/url';)へのパスを追加して、パスに到達するディレクトリのx量のパスをたどることができます新しいパスを追加する必要があります。

もう1つの可能性は、上のオプションの1つで動的に設定するか、必要なパスを入力することによって手動で設定する定数を使用することです。

define("ROOT_PATH", "/projects/ecommerce/"); 

または

define("ROOT_PATH", "http://localhost/projects/ecommerce/"); 

PHPから魔法の定数を使用したが、同様にあなたの問題を解決できます:この場合

の下に2つのオプションが動作するはず

define('ROOT_PATH', dirname(__DIR__)); 

かPHP 5.3.0より前:

define('ROOT_PATH', dirname(dirname(__FILE__))); 

定義済みの定数を出力するには、echo ROOT_PATH . '/path/to/url';を使用します。

関連する問題