我已经看过很多关于这个主题的内容,但我似乎无法让这件事情像我想要的那样......
我有这个.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';
}
答案 0 :(得分:1)
您可以使用$home = '';
,并将其添加到.htaccess:
DirectoryIndex index.php index.html
我将index.html作为示例包含在内,但您可以拥有任意数量的默认文件名,并按顺序检查它们。
编辑:你可以测试家庭为'',但<a href="">
只会指向当前页面。通常链接到主页,您将链接到“/”,它指向服务器的根目录。由于您的站点正在子目录中进行测试,因此您希望它是“/ site /”。通过将$ root变量设置为“/ site”,然后在将站点移动到根目录时将其更改为“”,可以使链接在不同的环境中工作。然后您的链接将显示为“/ site /”和“/ site / contact”。