动态网站,同时仍然是SEO兼容

时间:2012-07-25 10:31:02

标签: php .htaccess seo

  

可能重复:
  .htacces to create friendly URLs. Help needed

我想创建一个网站,通过PHP从MySQL数据库加载内容,同时仍然针对搜索引擎进行优化。

我考虑了一些方法,并且正在寻找一些最好的方法。

我网站上的用户会填写表单并提交,然后保存在SQL数据库中。我想拥有它,以便可以像这样访问每个新页面:

  • domain.com/plugins/的任何
  • domain.com/plugins/的 anotherpagename

一些方法: 1。 提交表单时,脚本会在plugins文件夹中生成静态HTML页面。编辑页面时(会有一个编辑按钮),HTML页面会被更新的信息覆盖。

  1. domain.com/plugins/ 无论和domain.com/plugins/ anotherpagename 都将重定向到PHP脚本。
  2. 但是,我不知道如何创建.htaccess,它允许PHP脚本获取页面名称,以便它可以搜索SQL数据库并显示正确的信息。

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

    1. 也许其他人可以为此提出更好的方法?
    2. 提前感谢您的帮助。

3 个答案:

答案 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具体解决方案:

  1. 在config / routes.php中定义

    $ route ['plugins /(:any)'] =“plugins / getPageFromDb / $ 1”; 在此之后,在浏览器中,url将与'domain.com/plugins/whatever'相同,但实际控制将使用'whatever'作为参数点击'plugins'控制器的'getPageFromDb'功能。

  2. 在'getPageFromDb'函数中,您应该编写代码以根据参数'whatever'从db获取页面并直接回显输出或通过视图模板(取决于您的逻辑/场景)。

  3. 为了提高性能,您可以保留html页面的静态版本,并在'getPageFromDb'函数中编写相对检查,以决定是从静态还是从db获取页面。

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