За последние 24 часа нас посетили 67816 программистов и 1648 роботов. Сейчас ищут 919 программистов ...

Mod Rewrite

Тема в разделе "Регулярные выражения", создана пользователем host, 22 апр 2010.

  1. host

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

    С нами с:
    20 июн 2007
    Сообщения:
    733
    Симпатии:
    3
    Здравствуйте. Подскажите пожалуйста, как преобразовать /my_test_page.html в /my-test-page
    Т.е обращаю внимание что нужно изменить разделитель с "_" на "-". Спасибо.
     
  2. Apple

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

    С нами с:
    13 янв 2007
    Сообщения:
    4.984
    Симпатии:
    2
    Покажи правило, которое уже написано.
     
  3. host

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

    С нами с:
    20 июн 2007
    Сообщения:
    733
    Симпатии:
    3
    Вот что есть :)

    RewriteEngine on
    RewriteBase /
    RewriteRule ^(.*)\/$ /$1.html

    Само преобразование не знаю как сделать ( /my_test_page.html в /my-test-page ).
     
  4. Apple

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

    С нами с:
    13 янв 2007
    Сообщения:
    4.984
    Симпатии:
    2
    Дак, это я что-то щас не понял - шутка?
    .html файл ФИЗИЧЕСКИ существует на носителе? =))
    Ну вы даёте.
     
  5. host

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

    С нами с:
    20 июн 2007
    Сообщения:
    733
    Симпатии:
    3
    Да, существует. Просили эти файлы физически оставить и при этом сделать такое преобразование :)
     
  6. host

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

    С нами с:
    20 июн 2007
    Сообщения:
    733
    Симпатии:
    3
    Помогите пожалуйста составить запрос: Нужно с адреса /my_test_page/?что-то_не_важно_что перекидывать на /my_test_page/
     
  7. Apple

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

    С нами с:
    13 янв 2007
    Сообщения:
    4.984
    Симпатии:
    2
  8. host

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

    С нами с:
    20 июн 2007
    Сообщения:
    733
    Симпатии:
    3
    там вроде как-то связано c {QUERY_STRING}, т.е суть запроса в том, что если этот {QUERY_STRING} существует, то перекидывать на эту же страницу, только без {QUERY_STRING}
     
  9. Apple

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

    С нами с:
    13 янв 2007
    Сообщения:
    4.984
    Симпатии:
    2
    Тогда RewriteCond
    Но смысла в такой операции я не вижу.
     
  10. host

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

    С нами с:
    20 июн 2007
    Сообщения:
    733
    Симпатии:
    3
    Да, там связано как-то с RewriteCond, помогите пожалуйста составить такой запрос, я с mod_rewrite особо не имел дело :(
     
  11. Apple

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

    С нами с:
    13 янв 2007
    Сообщения:
    4.984
    Симпатии:
    2
    Код (Text):
    1. RewriteEngine on
    2.  
    3. RewriteCond %{QUERY_STRING} .+
    4. RewriteRule .* /abc/
    Примерно так
     
  12. host

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

    С нами с:
    20 июн 2007
    Сообщения:
    733
    Симпатии:
    3
    а как указать чтобы перенаправить на эту же страницу ?
     
  13. Apple

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

    С нами с:
    13 янв 2007
    Сообщения:
    4.984
    Симпатии:
    2
    Код (Text):
    1. RewriteEngine on
    2. RewriteBase /test-page/
    3.  
    4. RewriteCond %{QUERY_STRING} .+
    5. RewriteRule .* /test-page/
    Как указать именно test-page?
    В случае указания RewriteBase оно и так известно, если нужен гибкий URL, то ловить надо всю строку полностью, брать из неё запрос, проверять и перенаправлять.
    Как по мне, так

    Код (Text):
    1. RewriteEngine On
    2.  
    3. RewriteCond %{REQUEST_FILENAME} !-d
    4. RewriteRule .* index.php [L]
    достаточно на все случаи жизни.