如何将动态URL转换为静态链接[duplicate]

How to convert dynamic URL to statics link [duplicate]

提问人:Famoustech 提问时间:6/9/2023 最后编辑:Famoustech 更新时间:6/10/2023 访问量:45

问:

如何转换

example.com/company?name=famoustech 到静态链接 example.com/company/famoustech from HTML 标签

<a href="example.com/company?name=Famoustech">Famoustech</a>

一旦用户点击链接,如何将其转换为

example.com/company/famoustech

还使用 .htaccess 从数据库中获取值 example.com/company 页面

我怎样才能在PHP和MYSQLI中实现这一点 这就是我到目前为止所做的 在看起来 example.com/company/famoustech 的索引上<a href="/company/<?= $row['company']?>"><?= $row['company']?></a>

在公司页面上,但内部服务器错误为 500$company_name = $_GET['company'];

php .htaccess mysqli

评论

0赞 9072997 6/9/2023
我可以从标签中假设您正在为 Web 服务器运行 Apache 吗?.htaccess
0赞 Famoustech 6/9/2023
是的,Apache中的.htaccess

答:

0赞 9072997 6/9/2023 #1

我不得不猜测一下您的配置,但这可能不是您打算在 PHP 中做的事情(除非您已经在使用路由脚本,但我猜您不是)。

您可能正在寻找通常在文件中配置的mod_rewrite(请参阅示例 2)。.htaccess

下面是一个示例 .htaccess 文件

RewriteEngine On

RewriteRule ^company/(.*)$ ./company/index.php?name=$1

mod_rewrite使用正则表达式。此文件说,当您收到与正则表达式匹配的请求时,将请求路由到(注意:将替换为正则表达式中的第一个捕获组,将替换为第二个,以此类推)。^company/(.*)$./company/index.php?name=$1$1$2

评论

0赞 Famoustech 6/9/2023
好的,但是我如何使用GET方法在页面中获取值
0赞 9072997 6/9/2023
在看到对问题的编辑后,我想我可能误解了你。你的问题是什么,你有你想要的链接吗?我不明白数据库是如何相关的。example.com/company?name=Famoustechexample.com/company/famoustech
0赞 Famoustech 6/9/2023
是的,我想使用GET方法在数据库的公司页面中获取它
1赞 M. Eriksson 6/9/2023
只需将其更改为 .这应该将请求重写为内部请求,使其可访问。RewriteRule ^company/(.*)$ ./company/index.php?name=$1/company/foobar/company/index.php?name=foobar$_GET['name']
0赞 M. Eriksson 6/10/2023
旁注:只要确保在未设置状态时处理状态即可,除非您对 .否则,该路径也将转到 ,但未设置任何查询参数。/company/company/index.php