【问题标题】:Are dynamic url variables a thing for PHP?动态 url 变量是 PHP 的东西吗?
【发布时间】:2016-07-23 03:23:02
【问题描述】:

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

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

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

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

【问题讨论】:

  • 我认为您在谈论“蛞蝓”,您可以在这里阅读一个很好的解释:stackoverflow.com/a/19335586/3779933
  • 是的,你必须把RewriteEngine On 并在.htaccess 文件中定义一个RewriteUrl "your rule" 并在PHP 中实现一些逻辑。

标签: php .htaccess


【解决方案1】:

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

.htaccess 可用于强制执行 Pretty 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 有用性的信息,例如我的参考资料 pretty url on 9lessons

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-04-02
    • 2016-11-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-04
    • 2018-08-23
    相关资源
    最近更新 更多