动态url变量对PHP来说是一件事吗


Are dynamic url variables a thing for PHP?

过去浏览网站时,我总是假设这个例子是url:http://example.com/folder/page/something-random,随机的东西是一个实际的文件夹,并且是在page.php区域中创建的。

但最近我进入了框架,进入了.htaccess,注意到这些事情不一定必须使用框架来完成,我想知道它是如何工作的?

是不是在.htaccess中进行了某种类型的编辑,使/something-random成为GET-php变量?

如果这个问题有点令人困惑,我深表歉意。

你不需要为url创建文件夹来看起来很漂亮。如果你有动态url,我建议使用.htaccess重写url的规则它会让url看起来像是一条路径,但它是一个变量

.htaccess对于强制执行Pretty URL非常有用。它们很有用,因为它们总是能帮助你提高搜索引擎页面排名,而且对用户友好。它有助于使URL在浏览器地址栏上看起来整洁,而且不一定非得是一个实际的文件夹。

示例

原始URL。

 http://flickr.com/users.php?id=username&page=2

重写友好URL。

 http://flickr.com/username/2

在.htaccess文件中,你会有这样的东西,让它发生

.htaccess文件

//First Parameer
RewriteEngine On
RewriteRule ^([a-zA-Z0-9_-]+)$ users.php?user=$1
RewriteRule ^([a-zA-Z0-9_-]+)/$ users.php?user=$1
//Second Parameter
RewriteEngine On
RewriteRule ^([a-zA-Z0-9_-]+)/([0-9]+)$ users.php?user=$1&page=$2
RewriteRule ^([a-zA-Z0-9_-]+)/([0-9]+)/$ users.php?user=$1&page=$2

要在php中捕获变量,可以使用类似的东西

php文件

<?php
$key=$_GET['key'];
if($key=='home')
{
include('home.php'); // Home page
}
else if($key=='login')
{
include('login.php'); // Login page
}
else if($key=='terms')
{
include('terms.php'); // Terms page
}
else
{
include('users.php'); // Users Gateway
}
?>

你可以在谷歌上了解更多关于.htaccess有用性的信息,例如我在9classes 上的参考漂亮url