2012-02-09 9 views
0

お客様のWebサイトを新しいホストに移動しようとしています。 コードを移動しましたが、リンクが機能しません。HTML相対URLが非標準的な方法で機能する

ディレクトリ構造は

/root /About Us 
/root/Contacts 

コードは、フォーム

<a href="/about/"><span>About Us</span></a></li> 

で/について/前のスラッシュは、標準的なHTMLではありませんが、それは動作しますので、これは動作しないはずがありです。

<a href="/about/"は、<a href="about/"である必要があります。
すべてのhmtlはindex.phpファイルにラップされています。

元のサイトはラックスペースでホストされており、私のローカルApacheサーバーでコードをテストしています。

相対アドレス指定の仕方を変更する設定ファイルがありますか?

+0

「相対的な」リンクではないので質問が理にかなっています...絶対的です。あなたが何を記述しようとしているのか分かりませんが、あなたの質問にタグをつけるつもりならば、少なくともあなたの 'htaccess'ファイルの内容を記述しておくべきです。 – Sparky

+1

実際、私はその質問が何であるか理解していません。 *それは動作してはいけませんか? *それは動作しませんか?これらは、標準ではない*相対URLではなく、標準の絶対URLです。 – deceze

+0

リンクシステムがラックスペースサーバ上で動作するのは混乱しますが、私のサーバでは同じリンクコードが動作しません。 user1198530

答えて

4

ローカルサーバですぐに機能させるには、<base>というタグを頭に付けてください。いずれかの方法で

<base href="http://localhost/my_site_folder/" /> 

ハイパーリンクの作業:

  • (絶対)リンクは、プロトコルで始まる場合(のhttp://、https://で、 など)、お使いのブラウザの試行リテラルURLを開く。

  • (root-relative)リンクがスラッシュで始まる場合、URLには現在のドメインの先頭に追加されます。あなたはどこにでもwww.topcompanies.comになら (、<a href="/about">はこのスタイルのURLは、サブフォルダにサイトを移動する場合に失敗します。)

  • (相対そうでない場合は、リンクが扱われhttp://www.topcompanies.com/about
    に行くことができますこのスタイルURLは、サイト全体を移動すると正しく動作しますが、.htmlファイルをディレクトリ構造内の別の深度に移動すると、正しくリンクされなくなります。

頭に<base>タグを追加すると、そのURLをベースとして使用するようブラウザに指示しますroot-relative URLであり、通常のhttpルートではありません。

+0

Samがとても助かりました。 – user1198530

0

相対アドレス指定は、絶対アドレスとは異なります。どちらの

  • あなたは正しいフォームへのhrefをマッサージするようにコード/ HTMLに一括変更を行う必要があり、または
  • は、あなたはどのようにURIの書き換えを行うための研究する必要があります。アプリケーションレベルでは、通常、.htaccessファイルとmod_rewriteモジュールを使用して行われます。必要に応じてアプリを別のサブドメインに移動し、HTTP_HOSTに基づいてvhost configまたはmod_rewriteルールを使用します。

PS。私は関連性のあるタグを追加しました。

関連する問題