За последние 24 часа нас посетили 81011 программистов и 6881 робот. Сейчас ищут 2433 программиста ...

ЧПУ с get параметрами

Тема в разделе "PHP для новичков", создана пользователем bo4kov, 28 мар 2018.

  1. bo4kov

    bo4kov Новичок

    С нами с:
    28 мар 2018
    Сообщения:
    4
    Симпатии:
    2
    Здравствуйте! На самописном сайте делаю чпу ссылки через RewriteRule в .htaccess. В конце каждого url слеш (/) удаляю. Все вроде нормально работает. Но когда добавлю в адрес любой get параметр то все работает не правильно.

    Приведу пример:
    Ссылка без чпу выгладит так - https://site.ru/search?cat_id=5
    Чпу ссылка - https://site.ru/search/rabota
    Это все работает правильно.

    Если добавить get параметр к чпу ссылке - https://site.ru/search/rabota/?page=2 - то слеш после слова 'rabota' удаляется - https://site.ru/search/rabota?page=2 - и get параметр (?page=2) не рабочий становится, а get параметр (cat_id=rabota) достается нормально.
    Как сделать чтобы слеш после 'rabota' не удалялся? строка
    Код (Text):
    1. #RewriteCond %{REQUEST_URI} !^/search/(.*)/?$
    работает не корректно.

    Код из файла htaccess:

    Код (Text):
    1. AddDefaultCharset UTF-8
    2. php_value register_globals 0
    3.  
    4. Options +FollowSymLinks
    5. RewriteEngine On
    6. RewriteBase /
    7. RewriteCond %{HTTP_HOST} ^www\.(.*) [NC]
    8. RewriteRule ^(.*)$ https://%1/$1 [R=301,L]
    9.  
    10. RewriteCond %{HTTPS} =off
    11. RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [QSA,L]
    12.  
    13.  
    14. RewriteCond %{REQUEST_FILENAME} !-f
    15. RewriteCond %{REQUEST_FILENAME} !-d
    16. RewriteRule \.(php|htm|html|swf|fla|xml|ico|jpg|gif|png|js|css)$ - [L]
    17. RewriteRule ^search/([-a-z0-9_]+)?$ ?cat_id=$1 [L]
    18.  
    19. RewriteCond %{HTTP_HOST} (.*)
    20. RewriteCond %{REQUEST_URI} /$ [NC]
    21. #RewriteCond %{REQUEST_URI} !^/search/(.*)/?$
    22. RewriteCond %{REQUEST_FILENAME} !-d
    23. RewriteRule ^(.*)(/)$ $1 [L,R=301]
    24.  
    25. RewriteCond %{REQUEST_FILENAME} !-d
    26. RewriteCond %{REQUEST_FILENAME} !-f
    27. RewriteRule ^(.*) /?%{QUERY_STRING}
     
  2. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.333
    Симпатии:
    1.753
    по-нормальному это ты все запросы направляешь на index.php где парсишь через parse_url() то, что пришло в $_SERVER['REQUEST_URI']
     
  3. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.841
    Симпатии:
    1.338
    Адрес:
    Лень
    Код (Text):
    1. AddDefaultCharset UTF-8
    2.  
    3. DirectoryIndex index.php
    4.  
    5. RewriteEngine On
    6.  
    7. # Redirect Trailing Slashes If Not A Folder...
    8. RewriteCond %{REQUEST_FILENAME} !-d
    9. RewriteRule ^(.*)/$ /$1 [L,R=301]
    10.  
    11. # Handle Front Controller...
    12. RewriteCond %{REQUEST_FILENAME} !-d
    13. RewriteCond %{REQUEST_FILENAME} !-f
    14. RewriteRule ^ index.php [L]
     
  4. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.861
    Симпатии:
    656
    @bo4kov, вам намекают, что никто из здесь присутствующих не будет разбираться в этих хитросплетениях правил (хотя некоторые могут, я например), потому что никто эту муть не использует.
    --- Добавлено ---
    ...в полной мере.
     
  5. bo4kov

    bo4kov Новичок

    С нами с:
    28 мар 2018
    Сообщения:
    4
    Симпатии:
    2
    То есть чпу делать не через htaccess, а другим способом?
     
  6. Danil005

    Danil005 Активный пользователь

    С нами с:
    2 янв 2015
    Сообщения:
    528
    Симпатии:
    30
    routing
     
  7. Алекс8

    Алекс8 Активный пользователь

    С нами с:
    18 май 2017
    Сообщения:
    1.724
    Симпатии:
    358
    давай я тебе дам свой велосипед с моим ЧПУ и роутингом?))
     
  8. bo4kov

    bo4kov Новичок

    С нами с:
    28 мар 2018
    Сообщения:
    4
    Симпатии:
    2
    давайте
     
  9. romach

    romach Старожил

    С нами с:
    26 окт 2013
    Сообщения:
    2.897
    Симпатии:
    718
  10. bo4kov

    bo4kov Новичок

    С нами с:
    28 мар 2018
    Сообщения:
    4
    Симпатии:
    2
    acho и igordata нравится это.