Проблема с урлами

12
T
На сайте с 20.03.2007
Offline
67
Toy
#11

mod_rewrite точно включен?

C7
На сайте с 25.01.2009
Offline
107
#12
Toy:
mod_rewrite точно включен?

Проверил с помощью вот такой конструкции :

RewriteRule page1.html page2.html

mod_rewrite работает ...

Лично я учился создавать и зарабатывать на сайте здесь - манимастер (http://www.moneymaster.ru/?chess77)
G
На сайте с 16.02.2011
Offline
42
#13
chess777:
На сколько я понял, mod_rewrite автоматически должен заменять /video.php?id=4 на /video4.php
Только прописал в .htaccess и ничего не меняется (((

Нет, автоматически он не заменяет video.php?id=4 на video4.php.

Просто при обращении к video4.php идет GET запрос к video.php, который можно будет обработать так же как у Попова) Т.е. $_GET['id']

chess777:

Позволяет сделать правильный вывод ссылок, но отрезает возможность передать с помощью Get нужную переменную для генерации следующей страницы...

Просто это будет работать при прописанных правилах в htaccess.

Проверил на своем сайте. Правильный вариант такой:

Options +FollowSymLinks

RewriteEngine On
RewriteRule video(\d)+\.php$ video.php?id=$1 [L,QSA]

плюс совет от beatom

beatom:
измените так:
printf ("Ролик:<a href='video%s.php' target=_blank ><br>", $my["id"] );
C7
На сайте с 25.01.2009
Offline
107
#14
glukon:


Проверил на своем сайте. Правильный вариант такой:

Options +FollowSymLinks

RewriteEngine On
RewriteRule video(\d)+\.php$ video.php?id=$1 [L,QSA]


плюс совет от beatom

Вот только обрадовался, что действительно ссылка приводит на файл video.php , да еще и с нужным урлом, но опять проблемка.

Складывается ощущение, что на страницу video.php не поступает правильный параметр id .

Потому как

if (isset ($_GET['id'])) { $id = $_GET['id'];}

$result = mysql_query ("SELECT * FROM video WHERE id='$id'", $db);

$my = mysql_fetch_array($result);

echo $my['title'];

ничего не выводит (((

G
На сайте с 16.02.2011
Offline
42
#15

Проверить легко.

вот код video.php для проверки

<?php

if (isset ($_GET['id'])) {
$id = $_GET['id'];
echo '<h2>$_GET[\'id\']</h2><pre>'.print_r($_GET['id'],1).'</pre>';
$result = mysql_query ("SELECT * FROM video WHERE id='$id'", $db);
$my = mysql_fetch_array($result);
echo '<pre>'.print_r($my,1).'</pre>';
} else {
echo '<h2>Ошибка: $_GET[\'id\'] пустой</h2><pre>'.print_r($_GET['id'],1).'</pre>';
}
?>

либо проще))

<?php

echo '<pre>'.print_r($_GET,1).'</pre>';
?>
C7
На сайте с 25.01.2009
Offline
107
#16
glukon:
Проверить легко.

вот код video.php для проверки

<?php

if (isset ($_GET['id'])) {
$id = $_GET['id'];
echo '<h2>$_GET[\'id\']</h2><pre>'.print_r($_GET['id'],1).'</pre>';
$result = mysql_query ("SELECT * FROM video WHERE id='$id'", $db);
$my = mysql_fetch_array($result);
echo '<pre>'.print_r($my,1).'</pre>';
} else {
echo '<h2>Ошибка: $_GET[\'id\'] пустой</h2><pre>'.print_r($_GET['id'],1).'</pre>';
}
?>


либо проще))

<?php

echo '<pre>'.print_r($_GET,1).'</pre>';
?>

Попробовал оба варианта и обнаружил интересную вещь.

Проблема оказывается в том, что при обращении video1.php , video2.php и до десятой страницы все отлично !!! А вот когда идет ссылка на video38.php , то почему-то первая цифра отрезается и передается только вторая.

Т.е. при переходе по ссылке video45.php методом get передается только 5 !

G
На сайте с 16.02.2011
Offline
42
#17

моя оплошность.

Options +FollowSymLinks 

RewriteEngine On
RewriteRule video([\d]+)\.php$ video.php?id=$1 [L,QSA]
siv1987
На сайте с 02.04.2009
Offline
427
#18

RewriteRule video(0-9+)\.php video.php?id=$1 [L]
Тоже не работает к сожалению, выскакивает
The requested URL /video27.php was not found on this server.

Да, 0-9 это же класс, надо было так

[0-9]+

моя оплошность.

В принципе тоже правильно (\d+)

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий