使用.htaccess清理网址仅适用于一个变量

时间:2016-08-26 13:58:52

标签: php .htaccess

我使用.htaccess文件为我的PHP网站制作干净的URL。该站点包含在Bootstrap框架中。

我可以设法获得一个变量($ page)的干净URL,但是当我尝试引入第二个($ user)时,它失败了。我在成功之前已在其他网站上完成了这项工作,并使用了该工作代码。

代码几乎可以工作,但这就是正在发生的事情。当我单击[Users](mysite.com/users)时,我会从users.php获取用户列表。当我单击[用户1](mysite.com/user1)时,我可以看到用户1的信息。这没关系,这就是我想要的。

但是,当我点击用户1页面上的[关于]时,它会回应“有关用户1的信息”,但是所有的Bootstrap css都被删除了,它的计划HTML没有格式化。就好像URL skipps index.php所在的css样式表一样,只打印出普通代码。

那么,有没有人看到我做错了什么?

的.htaccess

Options +FollowSymLinks
RewriteEngine On

RewriteRule ^([a-zA-Z0-9_-]+)/?$ index.php?page=$1 [L,QSA]

RewriteRule ^([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)$ index.php?page=$1&user=$2

的index.php

<?php
$page = $_GET['page'];
?>

<a href="/home">Home</a>
<a href="/users">Users</a>

<?php
if ($page == "home") { include('home.php');
} elseif ($page == "users") { include('users.php');
} elseif ($page == "user1") { include('users.php');
} elseif ($page == "user2") { include('users.php');
} else { include('home.php'); }
?>

users.php

<?php
$user = $_GET['user'];
?>

<a href="/user1">User 1</a>
<a href="/user2">User 2</a>

<?php
# chose user
if ($page == "user1") {
    echo "User 1 <br>";
    echo "<a href='/users/user1'>About</a>";
} elseif ($page == "user2") {
    echo "User 2 <br>";
    echo "<a href='/users/user2'>About</a>";
} else {
    echo "No user chosen";
}

#Show user info
if ($user == "user1") {
    echo "Info about User 1";
} elseif ($user == "user2") {
    echo "Info about User 2";
}

?>

0 个答案:

没有答案