Помогите написать ЧПУ

(Ответов: 14, Просмотров: 1403)
Страница 1 из 2 12 Последняя
  1. Гуру Аватар для Jeremen
    • Регистрация: 10.10.2011
    • Сообщений: 766
    • Репутация: 92
    • Webmoney BL: ?
    Нужно написать ЧПУ через mod_rewrite. Ибо у меня не получается. Есть site.ru/?id=(здесь числа) и site.ru/?do= здесь например registr, statistic нужно сделать так что бы query string не было видно, а только в первом случае цифры, а во втором значения. Помогите пожалуйста.
    Время не любит, когда его тратят впустую.
    • 0
  2. Дипломник
    • Регистрация: 19.12.2009
    • Сообщений: 145
    • Репутация: 32
    Код:
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteEngine On
    RewriteRule ^([0-9]+)/?$ /index.php?id=$1 [QSA,L]
    RewriteRule ^([-_A-Za-z0-9]+)/?$ /index.php?do=$1 [QSA,L]
    не проверял что не зацепит ли второе правило и только цифры, посему перестраховался бы и сделал бы второе правило где-то так:

    Код:
    RewriteRule ^do/([-_A-Za-z0-9]+)/?$ /index.php?do=$1 [QSA,L]
    • 2

    Спасибо сказали:

    feuer81(05.04.2012), Jeremen(03.04.2012),
  3. Гуру Аватар для Jeremen
    • Регистрация: 10.10.2011
    • Сообщений: 766
    • Репутация: 92
    • Webmoney BL: ?
    ctapbiu, что-то не работает. У меня стоит редирект с www и index.php на site.ru/ по этому я обрезал так

    Код:
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteEngine On
    RewriteRule ^([0-9]+)/?$ /?id=$1 [QSA,L]
    RewriteRule ^([-_A-Za-z0-9]+)/?$ /?do=$1 [QSA,L]
    и

    Код:
    RewriteRule ^do/([-_A-Za-z0-9]+)/?$ /?do=$1 [QSA,L]
    Не работает вообще. Может это из за редиректов?

    Вообще вот мой сейчас .htaccess
    Код:
    Options +FollowSymLinks
    RewriteEngine on
    RewriteCond %{HTTP_HOST} ^www.site.ru
    RewriteRule (.*) http://site.ru/$1 [R=301,L]
    RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/
    RewriteRule ^index\.php$ http://site.ru/ [R=301,L]
    ErrorDocument 404 http://site.ru/404.php
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteEngine On
    RewriteRule ^([0-9]+)/?$ /?id=$1 [QSA,L]
    RewriteRule ^([-_A-Za-z0-9]+)/?$ /?do=$1 [QSA,L]
    RewriteRule ^do/([-_A-Za-z0-9]+)/?$ /?do=$1 [QSA,L]
    Последний раз редактировалось Jeremen; 03.04.2012 в 23:20.
    Время не любит, когда его тратят впустую.
    • 0
  4. Дипломник
    • Регистрация: 19.12.2009
    • Сообщений: 145
    • Репутация: 32
    проверил
    работает и с индекс.пхп и без (но для папки стоит DirectoryIndex index.php)

    возможно какие-то другие правила режут
    попробуйте закомментировать
    ну и попробуйте вариант с index.php
    • 1

    Спасибо сказали:

    Jeremen(03.04.2012),
  5. Гуру Аватар для Jeremen
    • Регистрация: 10.10.2011
    • Сообщений: 766
    • Репутация: 92
    • Webmoney BL: ?
    ctapbiu, пробовал вариант с index.php
    Не работает...
    У меня тоже стоит DirectoryIndex index.php
    Последний раз редактировалось Jeremen; 03.04.2012 в 23:30.
    Время не любит, когда его тратят впустую.
    • 0
  6. Дипломник
    • Регистрация: 19.12.2009
    • Сообщений: 145
    • Репутация: 32
    очень странно
    работает прекрасно
    попробуйте что-то типа:

    Код:
    RewriteRule ^([0-9]+)/?$ /testfile.php?id=$1 [QSA,L]
    RewriteRule ^([-_A-Za-z0-9]+)/?$ /testfile.php?do=$1 [QSA,L]
    RewriteRule ^do/([-_A-Za-z0-9]+)/?$ /testfile.php?do=$1 [QSA,L]
    и сам testfile.php
    Код:
    echo '<pre>';
    print_r($_GET);
    echo '</pre>';
    если выводит нормально переменные, значит нужно искать в чем может быть дело

    ЗЫ: а как не работает? просто не выполняется нужный код или?
    • 0
  7. Гуру Аватар для Jeremen
    • Регистрация: 10.10.2011
    • Сообщений: 766
    • Репутация: 92
    • Webmoney BL: ?
    ctapbiu, да. Ничего не происходит, все работает как и работало раньше! Выводит нормальные переменные. А и еще когда ваш код добавил не работает редирект 404.
    Последний раз редактировалось Jeremen; 03.04.2012 в 23:59.
    Время не любит, когда его тратят впустую.
    • 0
  8. Дипломник
    • Регистрация: 19.12.2009
    • Сообщений: 145
    • Репутация: 32
    если _GET переменные такие, какие и должны быть - проверьте тоже самое в индекс.пхп (тот код вставьте в начало индекс.пхп и, если нужно, в хтмл комментарии спрячте)
    будут выводиться переменные - значит htaccess верный
    не будут - ищите что еще может повлиять (закомментируйте все строчки и по одной раскомментируйте)

    в общем, сужайте область поиска
    • 0
  9. Гуру Аватар для Jeremen
    • Регистрация: 10.10.2011
    • Сообщений: 766
    • Репутация: 92
    • Webmoney BL: ?
    ctapbiu, хм. Переменные выводятся нормально.
    Время не любит, когда его тратят впустую.
    • 0
  10. Дипломник
    • Регистрация: 19.12.2009
    • Сообщений: 145
    • Репутация: 32
    значит правила нормальные
    что-то в скрипте

    проверяйте
    • 0
Страница 1 из 2 12 Последняя

Похожие темы

Темы Раздел Ответов Последний пост
Human Emulator Помогите написать скрипт
Софт, скрипты, сервисы 0 09.03.2012 03:40
написать несколько простых модулей. DLE 9.4 (PHP)
Web программирование 0 17.10.2011 17:07
Нужно написать статью
Ссылки, статьи 0 18.07.2011 21:26
Как написать убойный заголовок
Дайджест блогосферы 0 10.10.2010 06:05
Как написать интересную статью для блога
Дайджест блогосферы 0 27.04.2010 12:24

У кого попросить инвайт?

Вы можете попросить инвайт у любого модератора:

Информеры