PHP替换页面参数

PHP替换页面参数,php,database,replace,indexing,Php,Database,Replace,Indexing,我对PHP和MySQL非常陌生,我有一些问题 首先,我有这样一个菜单:home.php、about.php等等。当有人访问home.php?page=1&opt=2&etc时,我希望URL显示为domain.com/home/1/2/etc。有没有办法做到这一点 第二,将页面内容保存在数据库中,然后在请求页面时从该数据库中显示是一种很好的做法?我的意思是,如果链接是home.php?page=1&opt=2&etc,我必须使用这些参数执行MySQL数据库查询,如果找到了,我必须显示字段(其中包含

我对PHP和MySQL非常陌生,我有一些问题

首先,我有这样一个菜单:home.php、about.php等等。当有人访问home.php?page=1&opt=2&etc时,我希望URL显示为domain.com/home/1/2/etc。有没有办法做到这一点

第二,将页面内容保存在数据库中,然后在请求页面时从该数据库中显示是一种很好的做法?我的意思是,如果链接是home.php?page=1&opt=2&etc,我必须使用这些参数执行MySQL数据库查询,如果找到了,我必须显示字段(其中包含html/php代码)。这是正确的吗?或者我应该采取什么方法

谢谢

编辑。
好吧,根据你的评论,这里是另一个答案

不要弄乱URL。暂时忘了它吧。毕竟这只是一种装饰。它会让你感到困惑,浪费太多时间,而它的重要性远远低于你的主要目标——网站本身。学习一些教程(我相信Sitepoint.com有一个),学习如何构建动态PHP+mysql驱动的站点。这不是一个可以用两段式回答的主题。事实上,人们上大约一年的课来获取基本知识。你要求的太多了,好像web开发就像一个愚蠢的游戏。事实并非如此

当有人访问home.php?page=1&opt=2&etc时,我希望URL显示为domain.com/home/1/2/etc

这毫无意义。
唯一明智的做法是相反的:有人访问domain.com/home/1/2/etc,但实际处理的地址是home.php?page=1&opt=2&etc

我必须用这些参数进行MySQL数据库查询,如果找到了,我必须显示字段

是的。
你在正确的轨道上。这正是世界上每个网站的运作方式

(其中包含html/php代码)。这是正确的吗

是的,但是有一个更正:没有PHP。仅限HTML

首先,我有这样一个菜单:home.php、about.php等等。 当有人访问home.php?page=1&opt=2&etc时,我希望URL显示为domain.com/home/1/2/etc。 有没有办法做到这一点

正如弹片上校所说,情况正好相反,但你应该做些别的事情。 这篇文章可能会对你有所帮助。

或者,假设您使用的是Apache,您可以这样做:

在您的.htaccess中:

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)$ index.php?args=$1 [QSA,L]
</IfModule>

重新启动发动机
重写cond%{REQUEST_FILENAME}-D
重写cond%{REQUEST_FILENAME}-F
重写规则^(.*)$index.php?args=$1[QSA,L]
这将返回请求的资源(如果存在)或转换您的URL: www.domain.com/1/2 进入 www.domain.com/index.php?args=/1/2

PHP中的某个地方: 您必须分析一个参数:$\u GET[“args”] 从示例中,它将包含“/1/2”

请注意,所有请求都将通过index.php输入

我建议您仔细设计您的URL,并尽可能编写一个通用的解析器。例如: /x/y是否始终表示:page=x opt=y,或者有时表示例如invoice=x line=y? 也许你可以考虑向请求添加更多的信息: www.domain.com/pages/1/2将明确提及页面


当然,如果您只发送页面,那么第一个选项将正常工作。

您使用的是哪台服务器?Apache?感谢您提供的URL!更具体地说,正如我所说,我有一个带有home.php、about.php等的菜单。当我按下about.php时,它将加载一些带有链接的默认HTML文本。我希望这些链接是关于.php?opt1=1&opt2=2&etc的。当我单击about.php?op1=1&etc时,我希望我的新页面是domain.com/about/1/etc(这是about.php的子页面)。现在我希望我能让自己明白。加上。。。我想知道如何存储about.php?opt1=1&etc信息。@但这毫无意义。你为什么不想你的链接已经是domain.com/about/1/etc-one了?@Shrapnel上校:我读过亚历杭德罗的链接,我了解事情的发展。谢谢大家的帮助。但仍然存在一个问题:如何存储数据?用HTML代码归档的单个文件或数据库?@Col.Shrapnel::))复制@Ionut也许我只是不理解这个问题,但是你真的不需要对URL做很多事情。你可以让他们一个人呆着,坚持到底。。或者你可以使用一些技巧(如前所述)让它们看起来“更漂亮”。存储数据:若你们谈论的是内容,我并没有什么要补充的弹片的评论。但是,您似乎对存储整个页面感兴趣,比如某种DB缓存之类的东西?