php - 使用MySQL创建.htaccess文件URL重写参数

标签 php mysql .htaccess apache2

我有一个大约有 100 个页面的网站,其中包含示例 .htaccess 文件

RewriteRule    ^1/?$    page1.php    [NC,L] 
RewriteRule    ^2/?$    page2.php    [NC,L] 
RewriteRule    ^3/?$    page3.php    [NC,L]  

问题是这些页面在添加内容时会在彼此之间进行大量重定向

header("location: page1.php");

可以,我希望使用 MySQL 来填充它。

我可以改为硬编码

header("location: /1");

但是如果 .htaccess 文件中的某个条目发生更改,我必须在很多地方进行更改。

所以我的问题是这可以由 MySQL 控制吗,就像我有一个简单的表

(id,page) values (1,page1.php)    

并且 .htaccess 会根据此 MySQL 表进行填充。

如果可能的话,实现这一目标的最佳方法是什么。

谢谢。

最佳答案

您应该使用RewriteMap .

它使用 .htaccess 中提到的文本文件,可用于将“某物”映射到 RewriteRule 中的“某物”。

类似这样的事情:

RewriteMap p2f txt:/path/to/map.txt
RewriteRule ^([^/]+)/?$ /{p2f:$1|notfound.php} [L]

map.txt 将是:

1 page1.php
2 page2.php
...

Apache 监视文件更改并自动重新加载。

您将需要更改流程,以便当数据库中的内容更新时,文本文件也会更新(SELECT INTO OUTFILE 可用于此目的)。

可以直接查询数据库,但是当我很久以前进行测试时,使用文件会更快。

关于php - 使用MySQL创建.htaccess文件URL重写参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55270753/

相关文章:

php - 基于组件的php框架?

javascript - jquery fadein 效果在单击时不起作用

php - 需要帮助解析 xml

php - 如何将 mysql php 中的图像显示到 android 中?

.htaccess - 如何使用 .htaccess + 限制访问隐藏文件扩展名

php - 禁止发布 403,在 justhost 上的 wordpress 站点

mysql - 计算一个表中与另一表中的条件匹配的记录数

php - 如何从 MySQL 的函数返回单个值到 PHP?

php - htaccess 重写 if 条件 if 变量等于某个字符串

php - 创建数据库驱动的永久链接(干净的网址)