mod#u重写不显示的规则';索引/';在主页上-PHP

mod#u重写不显示的规则';索引/';在主页上-PHP,php,apache,.htaccess,mod-rewrite,Php,Apache,.htaccess,Mod Rewrite,我已经看到了很多关于这个主题的东西,但我似乎不能让这个东西像我想要的那样工作 我有一个.htaccess文件: RewriteEngine on RewriteRule ^([^/]+)/$ $1.php 一切似乎都很好。例如,当我去 localhost/website 内容来自 localhost/website/index.php 显示。这是意料之中的。我的链接是PHP中的变量,如下所示: $home = 'index/' $contact = 'contact/' 等等,等等 然后

我已经看到了很多关于这个主题的东西,但我似乎不能让这个东西像我想要的那样工作

我有一个
.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';
}
您可以使用
$home='',并将其添加到.htaccess:

DirectoryIndex index.php index.html
我以index.html为例,但您可以有任意多个默认文件名,它会按顺序检查它们

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

你可以使用
$home=”,并将其添加到.htaccess:

DirectoryIndex index.php index.html
我以index.html为例,但您可以有任意多个默认文件名,它会按顺序检查它们


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

谢谢你的回答。我尝试了它,它指示正确,但链接没有保持突出显示,这是我需要的。不知何故,我需要导航中的循环来测试它是否是索引页,以便它将被突出显示。我将添加一个编辑来澄清。在您的循环中,当您在主页上时,它会告诉您页面url是什么?当我回显
$current\u page
变量时,它不会显示任何内容,可能是因为它是一个空字符串。这就是你要问的吗?我为我的愚蠢道歉。是的,没错。您还可以发布将当前页面与链接变量进行比较的代码。听起来问题可能就在那里。我添加了一些额外的片段,希望能帮助说明这一点。谢谢你的回答。我尝试了它,它指示正确,但链接没有保持突出显示,这是我需要的。不知何故,我需要导航中的循环来测试它是否是索引页,以便它将被突出显示。我将添加一个编辑来澄清。在您的循环中,当您在主页上时,它会告诉您页面url是什么?当我回显
$current\u page
变量时,它不会显示任何内容,可能是因为它是一个空字符串。这就是你要问的吗?我为我的愚蠢道歉。是的,没错。您还可以发布将当前页面与链接变量进行比较的代码。听起来问题可能就在那里。我添加了一些额外的片段,希望能帮助说明这一点。