Промяна на URL с htaccess

montana

Registered
Здравейте, може ли да се промени url-то така, че от това:
http://saita.eu/view.php?80 (като това 80 е различно на отделните страници)

да стане така:
http://saita.eu/title-na-stranicata
 
мисля , че не е това.

На мен линка в момента е така: kaprizen.eu/view.php?86

искам да стане така: kaprizen.eu/istinskiqt-zet-nosi-tyshta-si-na-ryce
 
Няма как да стане, защото ти подаваш ID. Можеш да си направиш скрипт, който при всяко ново ID да добавяш нов ред в .htaccess и да ползваш примера на @smoke.
 
.htaccess:

Код:
RewriteRule ^^/?([^/]*\.html?|[^\./]*)[:;,\.]*$ view.php?$1
RewriteRule ^^/?([^/]*\.html?|[^\./]*)[:;,\.]*/$ view.php?$1

Нормално е да не се промени само като сложиш htaccess, защото искаш при всяка страница трябва да си промениш и кода при разглеждането на страница.

Най-лесният начин е да си промениш заглавието което използваш да стане: "id-t-i-t-l-e". По този начин в view.php взимаш всичко което е след view.php? и използваш нещо подобно:

PHP:
$url = "id-t-i-t-l-e";
$explode = explode("-", $url);
$id = $explode['0'];

и надолу използваш при заявката WHERE `id`='$id'
 
@smoke пробвах какво ли не и само грешки ми дава :? ето това ми е целия код в view.php

PHP:
<?php
session_start(); //start sesji 
ob_start();
require_once('connect.php');
require_once('functions.php');

$tab = niceUrl();
$id = $tab[0];

$ex = explode("?",$_SERVER['REQUEST_URI']);	
$zapytanie = mysql_query("SELECT * FROM shity WHERE id = '".$ex[1]."'") or die("ERROR: Picture doesn't exist."); //wybiera dane z tabeli "shity" o przesłanym "id"
$shit = mysql_fetch_array($zapytanie);
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html lang="en-US" xml:lang="en-US" xmlns="http://www.w3.org/1999/xhtml">
<head>
<title><?php echo $shit['tytul']; ?> - <?php echo $ustawienia['tytul']; ?></title>
<?php include('tpl/head.php') ?>
</head>
<body>
<div id="head">
<?php include('tpl/logo.php') ?>
</div>
<?php include('tpl/menu.php') ?>
<div id="main">
<?php
//Liczymy ile jest wyników do wyświetlenia (powinien być 1)
$ile=mysql_num_rows($zapytanie);
// Broqch na pregledi
$broqch = ($_GET['id']);
mysql_query("UPDATE shity SET views = views+1 WHERE id = '$id' ") or die(mysql_error());
$query = "SELECT * FROM shity WHERE id = '$id' ";    
$result = mysql_query($query) or die(mysql_error());
$row = mysql_fetch_array($result) or die(mysql_error());
// Krai na broqcha

if($ile==0)
{
	echo '<center>Изображението или клипът не съществува !!!<br /><br /> <img src="img/error.png" /></center>';
}
else 
{
if ($zapytanie) {  //jeśli zapytanie można wykonać to...
	if($shit['typ']=='obrazek') {
		if($ustawienia['img_title']) {
			echo '<div class="img_title"><a href="view.php?'.$shit['id'].'">'.$shit['tytul'].'</a></div>';
		}
	echo '<div class="shit"><img src="'.$shit['obrazek'].'" alt="'.$shit['tytul'].'" title="'.$shit['tytul'].'"/>
	<div class="fb_share">
			<a  href="http://www.facebook.com/sharer.php?u=http://'.$host.$uri.'/view.php?'.$shit['id'].'" target="_blank" >
			<img height="36" align="absmiddle" width="175.5" alt="Facebook" src="img/facebook.png"/>
			</a>
		</div>
	</div>';
	}
	if($shit['typ']=='film')
	{
	$id_filmu=str_replace("http://www.youtube.com/watch?v=", "", $shit['obrazek']);
		if($ustawienia['img_title']) {
			echo '<div class="img_title"><a href="view.php?'.$shit['id'].'">'.$shit['tytul'].'</a></div>';
		}
	echo '<div class="shit">
	<object width="480" height="390"><param name="movie" value="http://www.youtube.com/v/'.$id_filmu.'?version=3&hl=pl_PL"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/'.$id_filmu.'?version=3&hl=pl_PL" type="application/x-shockwave-flash" width="480" height="390" allowscriptaccess="always" allowfullscreen="true"></embed></object>
	<div class="fb_share">
			<a  href="http://www.facebook.com/sharer.php?u=http://'.$host.$uri.'/view.php?'.$shit['id'].'" target="_blank" >
			<img height="36" align="absmiddle" width="175.5" alt="Facebook" src="img/facebook.png"/>
			</a>
		</div>
	</div>';
	}
echo '<span style="display:block;font-size:11px;padding-bottom:10px;">Добавено от: '.$shit['autor'].' | '.$shit['data'].' | Източник: '.$shit['zrodlo'].' | Прегледано: '.$shit['views'].' пъти</span>';
	
	if($ustawienia['komentarze']==1) {
	echo '<div style="margin-bottom:-40px; background:#333333;">
<div id="fb-root"></div><script src="http://connect.facebook.net/bg_BG/all.js#xfbml=1"></script><fb:comments href="http://'.$host.$uri.'/view.php?'.$shit['id'].'" num_posts="5" width="700" colorscheme="dark"></fb:comments>
		</div><br /><br /><br />';
	}
}
 else {
	echo 'Не могат да се извличат данни от таблицата "shity".'; //jeśli nie to błąd ^^
}
if(!$id) {
	echo 'Няма изображение и/или видео';
	}
}
?>
</div>

<div id="footer">
<?php include('tpl/footer.php') ?>
</div>

</body>
</html>
<?php ob_end_flush(); ?>
 
Това е кода, но трябва да изпращаш url подобно на това: http://site.com/85-istinskiqt-zet-nosi-tyshta-si-na-ryce като 85 трябва да е ID-то на страницата.

Код:
<?php
session_start(); //start sesji 
ob_start();
require_once('connect.php');
require_once('functions.php');

$tab = niceUrl();
$id = $tab[0];

$ex = explode("?",$_SERVER['REQUEST_URI']);     
$explodeEx = explode("-", $ex);
$id = $explodeEx['0'];
$zapytanie = mysql_query("SELECT * FROM shity WHERE id = '".$id."'") or die("ERROR: Picture doesn't exist."); //wybiera dane z tabeli "shity" o przesłanym "id"
$shit = mysql_fetch_array($zapytanie);
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html lang="en-US" xml:lang="en-US" xmlns="http://www.w3.org/1999/xhtml">
<head>
<title><?php echo $shit['tytul']; ?> - <?php echo $ustawienia['tytul']; ?></title>
<?php include('tpl/head.php') ?>
</head>
<body>
<div id="head">
<?php include('tpl/logo.php') ?>
</div>
<?php include('tpl/menu.php') ?>
<div id="main">
<?php
//Liczymy ile jest wyników do wyświetlenia (powinien być 1)
$ile=mysql_num_rows($zapytanie);
// Broqch na pregledi
$broqch = ($_GET['id']);
mysql_query("UPDATE shity SET views = views+1 WHERE id = '$id' ") or die(mysql_error());
$query = "SELECT * FROM shity WHERE id = '$id' ";    
$result = mysql_query($query) or die(mysql_error());
$row = mysql_fetch_array($result) or die(mysql_error());
// Krai na broqcha

if($ile==0)
{
        echo '<center>Изображението или клипът не съществува !!!<br /><br /> <img src="img/error.png" /></center>';
}
else 
{
if ($zapytanie) {  //jeśli zapytanie można wykonać to...
        if($shit['typ']=='obrazek') {
                if($ustawienia['img_title']) {
                        echo '<div class="img_title"><a href="view.php?'.$shit['id'].'">'.$shit['tytul'].'</a></div>';
                }
        echo '<div class="shit"><img src="'.$shit['obrazek'].'" alt="'.$shit['tytul'].'" title="'.$shit['tytul'].'"/>
        <div class="fb_share">
                        <a  href="http://www.facebook.com/sharer.php?u=http://'.$host.$uri.'/view.php?'.$shit['id'].'" target="_blank" >
                        <img height="36" align="absmiddle" width="175.5" alt="Facebook" src="img/facebook.png"/>
                        </a>
                </div>
        </div>';
        }
        if($shit['typ']=='film')
        {
        $id_filmu=str_replace("http://www.youtube.com/watch?v=", "", $shit['obrazek']);
                if($ustawienia['img_title']) {
                        echo '<div class="img_title"><a href="view.php?'.$shit['id'].'">'.$shit['tytul'].'</a></div>';
                }
        echo '<div class="shit">
        <object width="480" height="390"><param name="movie" value="http://www.youtube.com/v/'.$id_filmu.'?version=3&hl=pl_PL"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/'.$id_filmu.'?version=3&hl=pl_PL" type="application/x-shockwave-flash" width="480" height="390" allowscriptaccess="always" allowfullscreen="true"></embed></object>
        <div class="fb_share">
                        <a  href="http://www.facebook.com/sharer.php?u=http://'.$host.$uri.'/view.php?'.$shit['id'].'" target="_blank" >
                        <img height="36" align="absmiddle" width="175.5" alt="Facebook" src="img/facebook.png"/>
                        </a>
                </div>
        </div>';
        }
echo '<span style="display:block;font-size:11px;padding-bottom:10px;">Добавено от: '.$shit['autor'].' | '.$shit['data'].' | Източник: '.$shit['zrodlo'].' | Прегледано: '.$shit['views'].' пъти</span>';
        
        if($ustawienia['komentarze']==1) {
        echo '<div style="margin-bottom:-40px; background:#333333;">
<div id="fb-root"></div><script src="http://connect.facebook.net/bg_BG/all.js#xfbml=1"></script><fb:comments href="http://'.$host.$uri.'/view.php?'.$shit['id'].'" num_posts="5" width="700" colorscheme="dark"></fb:comments>
                </div><br /><br /><br />';
        }
}
 else {
        echo 'Не могат да се извличат данни от таблицата "shity".'; //jeśli nie to błąd ^^
}
if(!$id) {
        echo 'Няма изображение и/или видео';
        }
}
?>
</div>

<div id="footer">
<?php include('tpl/footer.php') ?>
</div>

</body>
</html>
<?php ob_end_flush(); ?>
 
Като поставя кода и този htaccess не ми отваря снимката на страницата

Код:
RewriteRule ^^/?([^/]*\.html?|[^\./]*)[:;,\.]*$ view.php?$1
RewriteRule ^^/?([^/]*\.html?|[^\./]*)[:;,\.]*/$ view.php?$1
 
Всички линкове и src-ове към картинки ги направи с абсолютен адрес тоест: http://site.com/img/image.jpg , а не както предполагам е сега само img/image.jpg
 

Горе