我想创建一个网站,通过PHP从MySQL数据库加载内容,同时仍然针对搜索引擎进行优化。
我考虑了一些方法,并且正在寻找一些最好的方法。
我网站上的用户会填写表单并提交,然后保存在SQL数据库中。我想拥有它,以便可以像这样访问每个新页面:
一些方法: 1。 提交表单时,脚本会在plugins文件夹中生成静态HTML页面。编辑页面时(会有一个编辑按钮),HTML页面会被更新的信息覆盖。
但是,我不知道如何创建.htaccess,它允许PHP脚本获取页面名称,以便它可以搜索SQL数据库并显示正确的信息。
我也不确定搜索引擎会如何处理这些页面?
提前感谢您的帮助。
答案 0 :(得分:2)
您可以选择如何执行此操作。符合您要求的最简单方法是将以下内容添加到.htaccess文件中:
RewriteEngine on
RewriteRule ^/plugins/(.*)$ /yourscript.php?plugin=$1 [L]
以上将/plugins/anything
的所有请求传递给yourscript.php,您可以使用$_GET['plugin']
从中访问插件名称。
如果“插件”只是一个示例,并且您希望能够使用/anything/anything
- 那么您可能希望查看将所有请求传递给PHP脚本,然后解析所请求的URL。
要做到这一点,你可以在你的.htaccess文件中使用这样的东西:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /yourscript.php [L]
为了打破这一点,上面告诉Apache将所有文件不存在的请求(即images / css / js等)重写为yourscript.php。
从那里,您可以通过$_SERVER['REQUEST_URI']
访问整个网址。您可以使用字符串函数,正则表达式等进行细分。
答案 1 :(得分:0)
为什么不制作实际目录? 例如
domain.com/plugins/whatever domain.com/plugins/anotherpagename
无论是什么,另一个页面都是目录。 然后在目录中将html文件写为index.html。 不需要htaccess,您仍然可以使用与上面相同的URL访问。
答案 2 :(得分:0)
我不知道你是否使用任何框架。我使用codeigniter
解决方案。可以使用其他框架/核心PHP模拟相同的内容。
codeigniter
具体解决方案:
在config / routes.php中定义
$ route ['plugins /(:any)'] =“plugins / getPageFromDb / $ 1”; 在此之后,在浏览器中,url将与'domain.com/plugins/whatever'相同,但实际控制将使用'whatever'作为参数点击'plugins'控制器的'getPageFromDb'功能。
在'getPageFromDb'函数中,您应该编写代码以根据参数'whatever'从db获取页面并直接回显输出或通过视图模板(取决于您的逻辑/场景)。
为了提高性能,您可以保留html页面的静态版本,并在'getPageFromDb'函数中编写相对检查,以决定是从静态还是从db获取页面。
考虑到url格式和格式良好的HTML呈现,它应该是搜索引擎友好页面。