如何在不使用 PHP 中的 get 变量的情况下使视图包含
我正在尝试像这样显示帖子/ ID
www.domain.com/view/1234
代替
www.domain.com/view.php?id=1234
如何在不使用 PHP 中的 get 变量的情况下使视图包含
我正在尝试像这样显示帖子/ ID
www.domain.com/view/1234
代替
www.domain.com/view.php?id=1234
假设您有一个mod_rewrite
启用了该模块的 Apache 服务器,您可以创建一个.htaccess
包含以下内容的新文件:
// First of all we want to set the FollowSymlinks option,
// and turn the RewriteEngine on
Options +FollowSymlinks
RewriteEngine on
// This is the rule that changes the URL
RewriteRule ^view/([^/.]+)/?$ view.php?id=$1 [L]
这将完全按照您的意愿进行并将任何重定向/view/123
到view.php?id=123
.
如果你正在寻找的是解析 uri 的能力,你可以使用这个:
$uri = $_SERVER["REQUEST_URI"]
$parts = explode("/",$uri)
$parts 数组中的最后一个元素应该是您的视图 ID。
Drupal(1) 包含以下函数来执行此操作:
function arg($index) {
static $arguments, $q;
if (empty($arguments) || $q != $_GET['q']) {
$arguments = explode('/', $_GET['q']);
$q = $_GET['q'];
}
if (isset($arguments[$index])) {
return $arguments[$index];
}
}
(1) 我不提倡使用 Drupal,我只是将它作为一个例子。
这是通过网络服务器 url 重写来完成的。
以下是 Apache 的一些参考资料(使用mod_rewrite
):
您需要使用 htaccess 重写 URL 并使用 PHP 以某种方式拦截它并从某处加载文件。
是你在找什么吗?