在php中创建动态文件(不是标题)

在php中创建动态文件(不是标题),php,Php,我想做的是: 为每个产品创建动态php文件。我目前正在做的是,如果一个人点击一个产品,它会在一个文件中打开,其中包含一些数据,例如www.example.com/showproduct.php?ref=1085。这里1085是一个productid&因此它显示了特定id的DB中的内容 是否可以将URL显示为www.example.com/google-nexus-5-16gb-black.php,其中这些数据来自数据库内容 我不想为每个产品创建一个页面,我认为这是一种浪费。有什么解决办法吗?您甚

我想做的是:

为每个产品创建动态php文件。我目前正在做的是,如果一个人点击一个产品,它会在一个文件中打开,其中包含一些数据,例如www.example.com/showproduct.php?ref=1085。这里1085是一个productid&因此它显示了特定id的DB中的内容

是否可以将URL显示为
www.example.com/google-nexus-5-16gb-black.php
,其中这些数据来自数据库内容

我不想为每个产品创建一个页面,我认为这是一种浪费。有什么解决办法吗?您甚至可以在
stackoverflow
上看到它如何显示每个问题的URL

编辑

我在
.htaccess
文件中使用了以下代码,但是它没有重写URL

RewriteEngine on
RewriteRule ^ref/([A-Za-z0-9-]+)/?$ showproduct.php?ref=$1 [NC]

有什么问题吗?一旦我知道了它的工作原理,我将尝试连接到数据库并获取文件名。

您可以为数据库中的每个产品记录创建一个唯一的别名字段,然后您可以使用
mod_rewrite
www.example.com/your-alias
映射到
www.example.com/showproduct.php?alias=your-alias
。这将为您提供所需的友好URL效果

更新 在您的情况下,似乎您只是想将
google-nexus-5-16gb-black.php
映射到
showproduct.php?ref=1085
,创建一个额外的别名字段可能有些过火。在这种情况下,您可以设置一个重写规则:

RewriteEngine on
RewriteRule ^google-nexus-5-16gb-black.php$  /showproduct.php?ref=1085 [L]
.htaccess URL重写文件。将原始URL www.example.com/showproduct.php?ref=1085重定向到www.example.com/google-nexus-5-16gb-black.php

RewriteEngine On
RewriteRule ^([a-zA-Z0-9-/]+).php$ showproduct.php?ref=$1
RewriteRule ^([a-zA-Z0-9-/]+).php/$ showproduct.php?ref=$1
你可以阅读更多关于


是的,可以使用
.htaccess
.htaccess
mod_rewrite
进行修改。但它不起作用,应该这样做。(RewriteRule在我的服务器上运行良好,我的https rewriterules运行良好)上述重写规则在我的服务器上运行良好(,)。如果它在你的电脑上不起作用,那可能意味着需要一些配置。我想你还没有完全理解我。没有这样的文件
google-nexus-5-16gb-black.php
,我只想将
showproduct.php?ref=1085
显示为
google-nexus-5-16gb-black.php
。在我的服务器中,该文件
google-nexus-5-16gb-black.php
不存在。我们正在将url
www.example.com/google-nexus-5-16gb-black.php
映射到
www.example.com/showproduct.php?ref=1085
,这不是你想要做的吗?我想,这是你服务器上的文件,对不起,我错了。这正是我想要做的,不知为什么它在我的服务器上不工作,完全相同的代码file@ShanilSoni您可以对显示产品信息的所有页面执行此操作。如果你想这么做的话
<?php
    include('db.php'); // Connection to your database
    if($_GET['ref'])
    {
        $url=mysql_real_escape_string($_GET['ref']);
        $sql=mysql_query("select title from table where ref='$url'");
        $count=mysql_num_rows($sql);
        $row=mysql_fetch_array($sql);
        $title=$row['title'];
    }
?>