如何在 php 中动态创建 none 现有页面

How to dynamically create a none existing page in php

我正在做一个项目,我正在考虑 SEO,解决这个问题的最聪明的方法是动态创建一个 none 现有页面。

详情

我有一个城镇列表

  1. 德克萨斯州
  2. 德里
  3. 多伦多
  4. 悉尼

这是 link 看起来像 http://xxxxx.com/texas

**注意:**没有名为texas.php

的文件

我有一个模板页面,它根据所点击的城镇从数据库中获取。

我希望 link 看起来像这样 http://xxxxx.com/schools-in-texas

在使用作品 "texas"

查询数据库后,应该显示一个页面,其中包含显示数据库结果的模板

这应该适用于其他城镇,例如 http://xxxxx.com/schools-in-toronto

首先,您应该将任何未找到的页面路由到 php 脚本。

在你的.htaccess文件中:

<IfModule mod_rewrite.c>
    <IfModule mod_negotiation.c>
        Options -MultiViews
    </IfModule>

    RewriteEngine On

    # Redirect Trailing Slashes...
    RewriteRule ^(.*)/$ / [L,R=301]

    # Handle Front Controller...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [L]
</IfModule>

然后你可以得到URL作为一个字符串,得到你需要的部分。

例如,如果您访问您的网站。com/Texas 以下脚本将 return /Texas:

<?php
echo $_SERVER[REQUEST_URI];

你可以在数据库上做任何进一步的工作...

(从 Laravel 获得的 htaccess 代码)

您必须使用apache 的模式重写规则。这样您就可以解析 URL 并设置 GET-String 参数以用于响应页面请求的控制器文件。

这是一个简单的教程: Mod-rewrite tutorial