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 为例,但您可以拥有任意数量的默认文件名,它会按顺序检查它们。

编辑:您可以将 home 测试为 '',但<a href="">只会指向当前页面。通常要链接到主页,您会链接到“/”,它指向服务器的根目录。由于您的站点正在子目录中进行测试,因此您希望它是“/site/”。您可以通过将 $root 变量设置为 '/site' 来使您的链接在不同的环境中工作,然后在您将站点移动到根目录时将其更改为 ''。然后您的链接将看起来像“/site/”和“/site/contact”。

于 2012-09-28T05:23:34.433 回答