【问题标题】:Create URL Path From Pages Table in DB从数据库中的页面表创建 URL 路径
【发布时间】:2016-09-09 23:01:21
【问题描述】:

我的网站和数据库有问题。例如,我创建了一个pages 表,我想在其中使用page title 作为路径。

http://website.com/page-title/

我正在使用 .htaccess 文件:

# BEGIN
<IfModule mod_rewrite.c >
    RewriteEngine On
    RewriteBase /
    RewriteRule ^index\.php$ - [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php [L]
</IfModule >
# END

但它不起作用?我需要创建目录文件夹吗?

【问题讨论】:

  • 您需要先从 $_SERVER['REQUEST_URI'] 中提取 URI 以查询您的数据库...可能。不确定您到底要做什么。
  • 数据库 我的数据库中有一个名为“pages”的表,其中包含我的所有页面,包括标题、描述、关键字、内容、创建者等。
  • Website 假设根目录中唯一的东西是 index.php 和 .htacess 文件。如果我在数据库中创建一个名为 about-us 的新页面,我希望能够在我的网站上显示该链接,一旦单击它,然后将我带到 website.com/about-us/(就像 WordPress 所做的那样,或多或少)但是在名为 about-us 的服务器中没有目录或索引文件,它只是在数据库中。所以基本上,我希望我的所有网站页面和内容都放在我的数据库中一个名为“pages”的表中,但它的功能就像一个带有路径、子路径等的常规网站。
  • 另外,根目录下的 index.php 文件只是一个模板文件,所以我使用 PHP 和 SQL 来提取数据库中的记录。但是在显示路径时我迷路了使用相同的文件...
  • 是的,所以在您的数据库中,您可以将路径保存在与请求 uri 匹配的列中。

标签: php apache .htaccess mod-rewrite path


【解决方案1】:

将所有请求推送到索引页面,然后该页面将仅发送到浏览器。您的服务器 $_SERVER['REQUEST_URI'] 应该会更改,但应该始终通过 index.php 页面运行:

/.htaccess

RewriteEngine On
RewriteCond %{REQUEST_URI} !(/$|\.)
RewriteRule (.*) %{REQUEST_URI}/ [R=301,L]
RewriteCond $1 !^(index\.php|images|robots\.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php?$1 [NC,QSA,L]

/index.php

<?php
// You should see the REQUEST_URI change here.
print_r($_SERVER);

【讨论】:

  • 我试过了,但我猜这不是最好使用 XAMMP 或 localhost?
  • 如果您使用的是 apache,它应该可以工作,所以这些应该可以正常工作。它在做什么或不做什么?
猜你喜欢
  • 1970-01-01
  • 2014-02-13
  • 1970-01-01
  • 1970-01-01
  • 2011-08-16
  • 2016-03-25
  • 2015-09-06
  • 1970-01-01
  • 2021-01-24
相关资源
最近更新 更多