PHP 获取 URL 作为变量

标签 php html css .htaccess mod-rewrite

我注意到许多网站使用以

结尾的 url
website.com/index.php?var="value"&var2="value2"

我想知道我怎样才能做到这一点,而不是将它作为 URL 的末尾,而是改为:

website.com/value/value2

然后让它不再在服务器根文件夹中搜索“/value/value2”,而是打开 index.php 然后在 PHP 编码有一个函数可以获取 URL 是什么。无论是字符串“/value/value2”还是数组“value”“value2”都没有关系,只是获取这些变量的某种方式。这样一来,URL 就可以被清理干净,并且很容易分辨出您在网站中的位置。

此外,如果有办法做到这一点,style.php 是否有可能与 index.php 位于同一文件夹中(但有一个 PHP header 将其设置为输出 CSS),这将在 index.php 的头部使用 <link rel="stylesheet" type="text/css" url="style.php" /> 调用或者无论语法是什么,能够获得相同的变量,以便可以根据 URL 更改 css 样式。

最佳答案

您可以在 .htaccess 文件中使用重写 url

检查这个。

RewriteEngine on
RewriteRule ^([^/]+)/([^/]+)/([^/]+) /?var=$1&var2=$2 [L]

这包括三个部分:

  1. RewriteRule 指定这是重写规则(与条件或其他指令相对)。该命令是将第 2 部分重写为第 3 部分。
  2. 这部分是一个正则表达式,只有当 URL 匹配这个正则表达式时,规则才会运行。在这种情况下,它表示 - 查找字符串的开头,然后是一串非斜杠字符,然后是一个斜杠,然后是另一串非斜杠字符。然后又是一堆非斜杠字符,然后是斜杠,然后是另一串非斜杠字符。括号表示括号内的部分将被存储以供将来引用。
  3. 最后,这部分说要用这种格式重写给定的 URL。 $1 和 $2 指的是捕获和存储的部分。

引用Beginner's Guide to mod_rewrite . 还有 tutorial同样。

关于PHP 获取 URL 作为变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12209587/

相关文章:

php - 找不到 Doctrine 专栏 : 1054 Unknown column 's.features' in 'field list' '

php - 更新查询 INNER JOIN mysqli

html - 如何在访问链接后停止超链接上的 CSS 动画?

javascript - 想要使用 javascript 从 css url 获取图像,这样我就可以设置背景图像的样式

jquery - 使用 javascript(最好是 jQuery)格式化价格

CSS 网格对齐元素 : baseline not working in Safari

javascript - 在 Chrome 扩展中插入图像?

php - 服务器即时创建文件供客户端保存

php - 将 php 响应发送到 ajax

html - CSS 在较小的设备上显示错误