Php .htaccess从MySQL读取

Php .htaccess从MySQL读取,php,mysql,.htaccess,Php,Mysql,.htaccess,我有一个用于虚荣URL的简单.htaccess文件,如下所示: RewriteEngine On RewriteRule ^example-category/?$ category.php?id=1 [NC] 其想法是,所有类别的URL,而不是看起来凌乱重定向到纯英语版本 我的类别存储在MySQL数据库中。因此,我想知道直接从数据库读取.htaccess文件是否可能(而且是明智的)。这样,如果我添加或删除一个类别,虚荣URL将相应地更新,而无需手动干预 这是个好主意吗?如果是这样的话

我有一个用于虚荣URL的简单.htaccess文件,如下所示:

RewriteEngine On
RewriteRule   ^example-category/?$   category.php?id=1  [NC]
其想法是,所有类别的URL,而不是看起来凌乱重定向到纯英语版本

我的类别存储在MySQL数据库中。因此,我想知道直接从数据库读取.htaccess文件是否可能(而且是明智的)。这样,如果我添加或删除一个类别,虚荣URL将相应地更新,而无需手动干预

这是个好主意吗?如果是这样的话,如何从MySQL中读取.htaccess文件


谢谢

您可以使用类别
名称
,而不是使用
ID
。下面是一个简单的例子

htaccess文件

RewriteEngine On
RewriteCond %{REQUEST_FILEMAME} !-f
RewriteCond %{REQUEST_FILEMAME} !-d
RewriteRule   ^([^/]+)/?$   /category.php?name=$1  [NC]
这将采用如下URL

http://example.com/books/
并将其发送到您的php文件

然后在您的php文件中,您可以使用
名称
获得类似的内容

<?php

$cat = $_GET["name"];

$query = "SELECT * FROM categories WHERE name='".$cat."'";

?>

为什么不能将
^(.*)$
重写为
category.php?name=$1
然后从该脚本中查找相关类别?你能告诉我这一行的作用吗?我对htaccess文件是全新的。谢谢它将采用所使用的任何路径,然后调用
category.php
,并将原始路径作为
name
参数的值提供(后一部分不是严格必需的,因为php总是可以使用
$\u SERVER['REQUEST\u URI']
获取原始路径信息)。我永远不会自动处理有关.htaccess文件的任何内容。依我的拙见,档案太重要,太危险了。