2013-11-28 114 views
2

您好我想转换的网页URL像www.example.com/pictures.php?title=yyoy喜欢的东西www.example.com/page/yoyo.php更改网页网址复制到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 } }?> 
+1

看看怎么了。htaccess文件的作品,它可以帮助 – tomahim

回答

2

我没有测试过这一点,但你应该使用类似的.htaccess文件下列规则:

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

需要注意的是,你需要mod_rewrite启用此工作在apache2

+0

已经写在.htaccess文件中的这段代码,但什么都没有发生@Stoic – Wajahat

1

通常我wo ULD从一种形式张贴时创建一个中间页,但在你的情况下,你的链接看起来是这样的:

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

所以它引导你在URL中的变量“标题”到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 } }?> 
+0

不明白这@ @ J2D8T – Wajahat

+0

我将编辑我的答案 – J2D8T

+0

我'picture.php页面'看起来不是这样,但仍然它不工作检查我的帖子我已经更新了它@ J2D8T – Wajahat

1

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

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

0

您应该使用.htaccess文件。补充一点:如果你使用像WAMP本地服务器

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

,一定要打开德mod_rewrite或阿帕奇rewrite_module并重新启动服务器。

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

+0

没有它不工作@ Joaquin-o – Wajahat

+0

你有一台服务器吗? ROR?哪一个? –

+0

我只是在.htaccess文件中的代码,但没有发生没有错误没有发生任何改变 – Wajahat

1

URE这一个

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