2013-11-28 6 views
2

Привет Я хочу, чтобы преобразовать страницы URL, как www.example.com/pictures.php?title=yyoy к чему-то вроде www.example.com/page/yoyo.phpИзменение URL страницы Для PHP

Как я могу это сделать?

www.example.com/pictures.php?title=yyoy эти страницы генерируются, когда кто-то загружает изображение на мой сайт, поэтому я хочу, чтобы эти типы URL были похожи на приведенный выше пример.

Поскольку эти страницы не могут быть индексом в поисковых системах. Благодаря

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 пакетирования создать Меж страницу при отправке из формы, но в вашем случае ваша ссылка выглядит следующим образом:

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

Так направляет вас pictures.php с переменной «название» в URL.

Так что на вашей странице 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' выглядит не так, но все же это не работает Проверка MY Post Я обновил его @ J2D8T – Wajahat

1

Здесь есть хороший ответ: Masking $_GET variables of the URL when passing pages in PHP Это скажет вам, как замаскировать ваши URL-адреса.

В качестве альтернативы вы можете загрузить эти файлы в каталог в своей файловой структуре под названием «страница /». Затем вы можете получить доступ к файлам (как загрузку) в каталоге страниц с помощью www.example.com/page/filename. php

0

Вы должны использовать файл .htaccess. Добавьте это:

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

Если вы используете локальный сервер, как WAMP, не забудьте включить де mod_rewrite или rewrite_module Апача и перезагрузки сервера.

Вы также должны использовать Google для регулярных выражений. Сообщите мне, если это было полезно.

+0

Нет, это не работает @ Joaquin-o – Wajahat

+0

Получаете ли вы сервер ROR? Который из? –

+0

Я просто поместил этот код в файл .htaccess, но ничего не произошло. Ошибки ничего не изменились. – Wajahat

1

URE Это один

RewriteEngine on 
RewriteRule ^pictures.php?title=(.+)$ page/$1.php [R, L] 
Смежные вопросы