0

多くの異なるサブフォルダー/アカウントを持つ専用サーバーがあります。ドメイン名がまだ関連付けられていないこれらのアカウント/サブフォルダーの1つに、新しいJoomla 2.5サイトのテストインストールがあります。私はそれにアクセスする必要があります

http://(SERVER-IP)/~subfolder/

それよりも

http://www.example.com/

ほとんどのリンク タイプは問題なく機能しています (つまり、「単一の記事」リンクが正しい記事のエイリアスにリンクするなど)。ただし、外部 URL メニュー項目タイプを使用して内部の記事のエイリアスにリンクすると、問題が発生します...メニュー項目のオプション リンク フィールドに「/contact-us」を入力して、(理論的には) リンクできるようにします。

http://(SERVER-IP)/~subfolder/index.php/contact-us

ただし、サブフォルダーを削除しているため、代わりに専用サーバーの Apache ルートにリンクされ、次のようになります。

http://(SERVER-IP)/contact-us

ドメイン名の代わりに IP アドレスを使用する場合にのみ、この問題が発生します...

URL 書き換えをオフにしているので、問題の原因は .htaccess ファイルではありません...定義された絶対パスに問題はありますか? 開発中に404エラーが表示されないように、これを修正する方法についてのアイデアはありますか? 私を正しい方向に向けてくれてありがとう!

4

1 に答える 1

0

先頭のスラッシュはドキュメント ルートから開始することを意味するため、基本的にはすべての「フォルダー」をルート ドメイン (開発システムでは IP アドレスのみを意味します) まで削除することを意味します。

1 つのオプションは、baseタグを使用して、外部 URL メニュー タイプの相対リンクを設定することです。<head>これをテンプレート ファイルの index.php の宣言の直後に追加できます。

<base href="<?php echo JURI::root(); ?>" />

ただし、これにより相対リンクに関する多くの問題が発生する可能性があるため、ここで問題を比較検討することをお勧めします: <base> html タグを使用することをお勧めしますか?

2番目のオプションはindex.php、最初に試してみることなので、 url を作成しindex.php/contact-usます。これは内部リンクとして適切にルーティングされると思います。

これは、ライブに移行して htaccess URL の書き換えをオンにすると問題が発生します。確認したところ、index.phpセクションが削除されないため、問題です。

3 番目のオプション (より多くの作業が必要ですが、おそらく推奨されます) は、外部 URL メニュー項目を含む内部 URL へのリンクを停止することです。Joomla は、URL のメニュー項目を設定すると最適に機能する傾向があります。(URL ルーティングの多くは、メニュー項目に基づいています。)

3 番目のオプションは、ルーティングの問題を修正するよりも、[外部 URL] メニュー項目を使用しないようにする方が簡単な場合があるということです。

于 2013-07-30T06:22:17.657 に答える