[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Как преобразовать post.php?id=1 в post/1 ? [ЧПУ]
Страницы: 1, 2, 3, 4
bybad
Цитата (killer8080 @ 31.08.2013 - 18:31)
bybad
напиши еще раз какие должны быть ссылки, и что нужно получить.

Если вкратце, есть адрес вида http://site.ru/post.php?id=1
Нужно этот адрес преобразовать в http://site.ru/post/1

У меня получилось сделать http://site.ru/1 с помощью следующего кода в файле .htaccess

RewriteEngine on
Options +FollowSymlinks
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f

RewriteRule ^(.*)$ post.php?id=$1 [L]

ErrorDocument 404 http://site.ru/error404.php
ErrorDocument 403 http://site.ru/error403.php


Но если я дописываю post/

RewriteRule ^post/(.*)$ post.php?id=$1 [L]


меня перебрасывает на 404 ошибку
killer8080
RewriteRule ^post/(\d+)/?$ post.php?id=$1 [L,QSA]
bybad
Цитата (killer8080 @ 31.08.2013 - 18:43)
RewriteRule ^post/(\d+)/?$ post.php?id= [L,QSA]

404 Not Found
Ramzes_Ra
так у меня даже при попытке открыть страницу без расширения, хостер выдаёт ошибку 404.

killer8080, вот об этом я в своей прошлой теме и написал. У меня работает, только он не добавил RewriteRule ^post/([^/]+)/?$ post.php?id=$1 [L] , хотя если
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php
выдает ошибку, а у меня не выдаёт, то это великий кодовый рандом о_О
bybad
Почему-то ему не нравится "/" косая черта.

RewriteRule ^post(.*)$ /post.php?id=$1 [L]


Такое условие даёт доступ к страницам по адресу http://site.ru/post1 и т.д.
Ramzes_Ra
попробуй просто так для этой конкретно страницы - вместо всего htaccess, только эти 2 строчки вставь и попробуй
RewriteEngine on
RewriteRule ^post/([^/]+)/?$ post.php?id=$1 [L]



ой без 1, ато я id=1 написал в регулярке, спать идти надо
killer8080
Цитата (bybad @ 31.08.2013 - 21:45)
404 Not Found

это ответ апача, или твоего скрипта?



Спустя 39 секунд killer8080 написал(а):
про RewriteEngine on ты конечно не забыл?
bybad
Цитата (Ramzes_Ra @ 31.08.2013 - 18:57)
попробуй просто так для этой конкретно страницы - вместо всего htaccess, только эти 2 строчки вставь и попробуй
RewriteEngine on
RewriteRule ^post/([^/]+)/?$ post.php?id= [L]



ой без 1, ато я id=1 написал в регулярке, спать идти надо

Попробовал - ошибка 404.

Работает только если убрать косую черту.
bybad
Цитата (killer8080 @ 31.08.2013 - 18:59)
Цитата (bybad @ 31.08.2013 - 21:45)
404 Not Found

это ответ апача, или твоего скрипта?



Спустя 39 секунд killer8080 написал(а):
про RewriteEngine on ты конечно не забыл?

Я уже полностью обнулил файл и убрал все статусы - ответ идёт от апача !
killer8080
покажи полностью .htaccess, post.php существует?
Ramzes_Ra
Цитата
Работает только если убрать косую черту.

в смысле так?
RewriteRule ^post/([^/]+)$ post.php?id= [L]

если убрать черту то работает так как тебе и нужно?
bybad
Цитата (killer8080 @ 31.08.2013 - 19:06)
покажи полностью .htaccess, post.php существует?

.htaccess

RewriteEngine on
Options +FollowSymlinks
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f

RewriteRule ^([^/]+)/?$ post.php?id=$1 [L]

ErrorDocument 404 http://site.ru/error404.php
ErrorDocument 403 http://site.ru/error403.php


post.php существует?

Да
killer8080
а как выглядит запрос?

PS я давал другое правило
bybad
Цитата (Ramzes_Ra @ 31.08.2013 - 19:07)
Цитата
Работает только если убрать косую черту.

в смысле так?
RewriteRule ^post/([^/]+)$ post.php?id= [L]

если убрать черту то работает так как тебе и нужно?

Нет, если убрать черту перед скобками.

RewriteRule ^post/([^/]+)$ post.php?id=$1 [L]
bybad
Цитата (killer8080 @ 31.08.2013 - 19:14)
а как выглядит запрос?

PS я давал другое правило

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

$check = mysql_query("select * from fakty where id='$id'",$db);
if (!$check)
{
echo "Ошибка";
exit (mysql_error());
}
if (mysql_num_rows($check) > 0)
{
$myrow = mysql_fetch_assoc($check);
}
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.