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

时间:2019-03-20 21:54:09

标签: php mysql .htaccess apache2

我有一个约有100页的网站,示例.htaccess文件具有该页面

AnimationView(name: "name")

问题是这些页面之间以及添加时会获得很多重定向

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

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

我可以改为硬编码

header("location: page1.php");

但是,如果.htaccess文件中的一项更改,则我必须在许多地方进行更改。

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

header("location: /1");

和.htaccess会基于此MySQL表进行填充。

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

谢谢。

1 个答案:

答案 0 :(得分:0)

您应该使用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可以用于此目的)。

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