1

私はこのテーマについて多くのことを見てきましたが、私はこのことを私が望むように機能させることができないようです...

私はこの.htaccessファイルを持っています:

RewriteEngine on
RewriteRule ^([^/]+)/$ $1.php

そして、すべてがうまくいくようです。私が行くとき、例えば

localhost/website

からの内容

localhost/website/index.php

が表示されます。これは予想されます。私のリンクは次のようにPHPの変数にあります。

$home = 'index/'
$contact = 'contact/'

などなど...

次に、他のリンクに移動し、少しクリックしてから、[ホーム]リンクをクリックすると、URLは次のようになります。

localhost/website/index/

これが私のhref指摘ですので、期待されています...しかし、私は本当にそれを望んでいます:

localhost/website

$home = '';では、代わりに変数を使用して、$home = index/';上記で必要なものを取得するにはどうすればよいですか?ファイルに入れるべきものが足りないような気がし.htaccessます。

また、ナビゲーションの仕組みは、現在のページをチェックして、グラフィックを強調表示しないのではなく強調表示するPHPループを使用していることにも言及する必要があります。

このループは、ページ変数(、など)をチェックし、ページ変数で$homeいっぱい$contactの配列のキー値と等しい場合は、リンクの強調表示されたセットを使用します。これは、明るい色のページに影響を与えます。ボタン。

ここでの問題は、インデックスページに使用していますが'index/'、使用したいのです''が、これは機能しないようです。条件付き'index/'でチェックする場合は機能しますが、空の文字列('')をチェックする場合は機能しません。

編集

これが私の場合に役立つかもしれないいくつかの追加のコードスニペットです:

// Navigation links
$home           =   '';
$contact_us     =   'contact/';

// Button array
$page_nav_lt = array(
$home           =>  $home_but_lt,
$contact_us     =>  $contact_but_lt
);

// Loop conditional (it's _alt below because it's a function in a class)
if ($current_page == $key) {
    $menu_output .= $image_dir . $ds . $page_nav_alt[$key];
    $menu_output .= '" id="alt" class="data-id-yes';
}
4

1 に答える 1

1

を使用$home = '';して、これを.htaccessに追加できます。

DirectoryIndex index.php index.html

例としてindex.htmlを含めましたが、デフォルトのファイル名はいくつでも持つことができ、順番にチェックされます。

編集:ホームを''としてテストできますが<a href="">、現在のページを指すだけです。通常、ホームページにリンクするには、サーバーのルートディレクトリを指す「/」にリンクします。サイトはサブディレクトリでテストされているため、「/site/」にする必要があります。$root変数を'/site'に設定し、サイトをルートに移動するときに''に変更することで、さまざまな環境でリンクを機能させることができます。その場合、リンクは「/site/」および「/site/contact」のようになります。

于 2012-09-28T05:23:34.433 に答える