Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/257.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php URL自动重写_Php_Html_.htaccess - Fatal编程技术网

Php URL自动重写

Php URL自动重写,php,html,.htaccess,Php,Html,.htaccess,在我的博客中,我使用URL重写。帖子的真实url是domain.com/article.php?id=3,每次我发布新文章时,我都必须编辑.htaccess以自动重定向到帖子的domain.com/article/name 有没有办法用保存在我的sql数据库或帖子中的文章名自动进行重写 谢谢 编辑1: 我从一个php脚本开始,每次我发表文章时它都会修改.htaccess,但我知道从长远来看这不是一个好的解决方案 编辑2: 我将此添加到我的.htacess中: 重新编写引擎打开 重写规则^arti

在我的博客中,我使用URL重写。帖子的真实url是domain.com/article.php?id=3,每次我发布新文章时,我都必须编辑.htaccess以自动重定向到帖子的domain.com/article/name

有没有办法用保存在我的sql数据库或帖子中的文章名自动进行重写

谢谢

编辑1: 我从一个php脚本开始,每次我发表文章时它都会修改.htaccess,但我知道从长远来看这不是一个好的解决方案

编辑2: 我将此添加到我的.htacess中:

重新编写引擎打开
重写规则^article-([0-9]+)-(.*)$./article.php?id=$1[L]

它使页面
domain.com/article.php?id=3
可以通过类似
domain.com/article-3-anyStringChain的url访问


有关更多信息,请参见

,没有关于您使用的框架等的更多信息,我只有一些建议:

1) 将名称也放在查询字符串中,以便可以直接基于它重写它。由于重写和QSA,它在浏览器中无论如何都不可见。 换句话说:名称应该是URL的一部分


2) 每次调用像article.php?id=3这样的URL都要执行重定向,以便在从数据库中提取名称后转到建议1)

搜索“slug”和“.htaccess RewriteRule regex”您至少进行了哪些研究?在php和数据库中使用url重写框架?您使用的是像
Wordpress
Laravel
这样的框架还是CMS?在PHP中处理URL的代码是什么?Wordpress有一个,你看过了吗?即使你没有使用Wordpress,语法也适用于所有地方。啊哈,不,但我今天也遇到了同样的问题,我搜索并找到了我的老问题,所以我添加了我的解决方案,以帮助其他人,如果我能^^^我什么都不懂^^是的,我想用文章的名字重写,这是你说的吗?是的,但是你当然需要以某种方式在你的URL中获得文章的名字。最好的方法(建议1)是将其放入查询字符串中,例如从数据库中获取名称后,调用article.php?id=3&name=foobar\u article\u name
第二种方法是调用article.php?id=3,该脚本将您重定向到article.php?id=3&name=foobar\u article\u name`谢谢您的回复,我不希望用户能够看到
article.php?id=3
,因此我将尝试使用php编辑页面中的链接…啊,好的,我明白了…如果这些URL根本不应该可见,那么您必须使用哈希(这会导致像
article.php?ajfdsöoajwrf934afrfj934
这样的丑陋URL,用户无法/几乎无法猜到,或者…如果可能的话,手动编辑链接,至少有两篇文章同名。如果没有,您不需要id,可以直接调用
article.php?name=name_of_the_post
,然后将其重写为您所需的文章结构