将页面URL更改为PHP

时间:2013-11-28 19:31:16

标签: php url

您好我想将www.example.com/pictures.php?title=yyoy之类的网址转换为www.example.com/page/yoyo.php

之类的内容

我该怎么做?

www.example.com/pictures.php?title=yyoy当有人将图片上传到我的网站时会生成这些页面,因此我想将这些类型的网址转换为上面显示的示例。

因为这些页面无法在搜索引擎中编制索引。感谢

Picture.php

<?php 
include("connection.php");

if(isset($_GET['title'])){

$page_id = $_GET['title'];

    $select_query = "select * from save_data where Title='$page_id'";

$run_query = mysql_query($select_query);

while($row=mysql_fetch_array($run_query)){

    $post_id = $row['ID']; 
    $post_title = $row['Title'];
    $post_image = $row['Name'];

$page_title = $_GET['title'];
header('uploads/ ' . $page_title . '.php')

?>
<center>
<h2>
<a href="pictures.php?title=<?php echo $post_title; ?>">

<?php echo $post_title; ?>

</a></center>

</h2>

<center><img src="uploads/<?php echo $post_image; ?>"  /></center>


<?php } }?>

5 个答案:

答案 0 :(得分:2)

我没有对此进行过测试,但您应该在.htaccess文件中使用与以下类似的规则:

RewriteEngine on
RewriteRule   ^pictures.php?title=(.+)$  page/$1.php  [R]

请注意,您需要mod_rewrite启用此功能才能在apache2

中使用

答案 1 :(得分:1)

通常我会在从表单发布时创建一个中间页面,但在您的情况下,您的链接如下所示:

www.example.com/pictures.php?title=yoyo

因此,它会将您引导至带有变量“title”的pictures.php。

所以在你的pictures.php页面上使用:

$page_title = $_GET['title'];

当你想去yoyo.php:

header('Location: $page_title.php')

从您的编辑中,此代码将重定向页面,但不会显示最后一个HTML:

<?php 
  include("connection.php");

  if(isset($_GET['title'])){

    $page_id = $_GET['title'];

    $select_query = "select * from save_data where Title='$page_id'";

    $run_query = mysqli_query($select_query);

    while($row=mysqli_fetch_assoc($run_query)){

      $post_id = $row['ID'];       //Just make sure the values between [''] match -
      $post_title = $row['Title']; //your columns in database.
      $post_image = $row['Name'];
    }

    header('Location:uploads/$post_title.php');
?>

这将被遗漏:

<center>
  <h2>
  <a href="pictures.php?title=<?php echo $post_title; ?>">

  <?php echo $post_title; ?>

  </a></center>

  </h2>

  <center><img src="uploads/<?php echo $post_image; ?>"  /></center>


  <?php } }?>

答案 2 :(得分:1)

这里有一个很好的答案:Masking $_GET variables of the URL when passing pages in PHP 这将告诉您如何屏蔽您的网址。

或者,您可以将这些文件上传到文件结构中名为“page /”的目录中。然后,您可以使用www.example.com/page/filename.php访问页面目录中的文件(作为下载)。

答案 3 :(得分:1)

URE这一个

RewriteEngine on
RewriteRule   ^pictures.php?title=(.+)$  page/$1.php  [R, L]

答案 4 :(得分:0)

您应该使用.htaccess文件。加上这个:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^picture/([a-zA-Z0-9]+).php$ pictures.php?title=$1
</IfModule>

如果您使用的是WAMP等本地服务器,请务必启用apache的de mod_rewriterewrite_module并重新启动服务器。

您还应该使用Google for Regular Expressions。 让我知道它是否有用。