Php .htaccess从MySQL读取
我有一个用于虚荣URL的简单.htaccess文件,如下所示: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将相应地更新,而无需手动干预 这是个好主意吗?如果是这样的话
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文件的任何内容。依我的拙见,档案太重要,太危险了。