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