Php 动态网站,同时仍然是搜索引擎优化兼容

Php 动态网站,同时仍然是搜索引擎优化兼容,php,.htaccess,seo,Php,.htaccess,Seo,可能重复: 我想创建一个网站,通过PHP从MySQL数据库加载内容,同时仍在为搜索引擎优化 我已经考虑了一些方法,并正在寻求关于哪种方法最好的建议 我网站上的用户会填写表单并提交,表单会保存在SQL数据库中。我希望使用它,以便每个新页面都可以这样访问: domain.com/plugins/无论什么 domain.com/plugins/另一个页面名 一些方法: 1. 提交表单时,脚本会在plugins文件夹中生成一个静态HTML页面。编辑页面时(将有一个编辑按钮),HTML页面将被更新的

可能重复:

我想创建一个网站,通过PHP从MySQL数据库加载内容,同时仍在为搜索引擎优化

我已经考虑了一些方法,并正在寻求关于哪种方法最好的建议

我网站上的用户会填写表单并提交,表单会保存在SQL数据库中。我希望使用它,以便每个新页面都可以这样访问:

  • domain.com/plugins/无论什么
  • domain.com/plugins/另一个页面名
一些方法: 1. 提交表单时,脚本会在plugins文件夹中生成一个静态HTML页面。编辑页面时(将有一个编辑按钮),HTML页面将被更新的信息覆盖

  • domain.com/plugins/任何和domain.com/plugins/另一个页面名都将重定向到PHP脚本 但是,我不知道如何创建一个.htaccess,它允许PHP脚本获取页面名称,以便它可以搜索SQL数据库并提供正确的信息

    我也不确定搜索引擎会如何处理这些页面

  • 也许其他人能想出更好的方法
    提前感谢您的帮助。

    为什么不制作一个实际的目录呢? 例如

    domain.com/plugins/where domain.com/plugins/anotherpagename

    无论什么和另一个页面名都是目录。 然后将html文件作为index.html写入目录中。
    不需要htaccess,您仍然可以使用与上面相同的url进行访问

    您有几个选项可供选择。符合您需求的最简单方法是将以下内容添加到.htaccess文件中:

    RewriteEngine on
    RewriteRule ^/plugins/(.*)$ /yourscript.php?plugin=$1 [L]
    
    RewriteEngine on
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteRule . /yourscript.php [L]
    
    上述操作将所有对
    /plugins/anything
    的请求传递到yourscript.php,您可以使用
    $\u GET['plugin']
    从中访问插件名称

    如果“插件”只是一个示例,并且您希望能够使用
    /anything/anything
    ——那么您可能希望将所有请求传递给PHP脚本,然后解析请求的URL

    为此,您可以在.htaccess文件中使用如下内容:

    RewriteEngine on
    RewriteRule ^/plugins/(.*)$ /yourscript.php?plugin=$1 [L]
    
    RewriteEngine on
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteRule . /yourscript.php [L]
    
    为了解决这个问题,上面告诉Apache将文件不存在的所有请求(即images/css/js等)重写为yourscript.php


    从那里,您可以通过
    $\u服务器['REQUEST\u URI']
    访问整个URL。您可以使用字符串函数、正则表达式等对其进行分解。

    我不知道您是否在使用任何框架。我有使用
    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”函数中写入一个相对检查,以决定是从静态还是从数据库获取页面


    考虑到url格式和格式良好的HTML呈现,它应该是搜索引擎友好的页面。

    只要每页有一个唯一的url,那么您在后端做什么都无关紧要。URL可以是
    example.com/plugin?page=which
    ,设置起来非常简单,对于SEO和其他任何东西一样好。但是你需要使用上面链接的URL重写解决方案。。。