Настроить rewriterule через .htaccess

Тема в разделе "Mod Rewrite / htaccess / ЧПУ", создана пользователем 1Dreamweaver1, 5 янв 2012.

  1. 1Dreamweaver1

    1Dreamweaver1

    Регистр.:
    5 янв 2008
    Сообщения:
    417
    Симпатии:
    44
    Помогите разобраться в следующем.
    на данный момент url такого вида domen.ru/product.html

    .html происывается в скрипте products.php

    Необходимо переделать url в вид domen.ru/product.php

    Код:
    RewriteEngine On
    RewriteBase /
    RewriteRule ^index\.php$ - [L]
    RewriteRule ^(\S*)\.html$ /products.php?product_name=$1 [L] 
     
  2. dandandan

    dandandan

    Регистр.:
    7 авг 2008
    Сообщения:
    990
    Симпатии:
    267
    Ну и соответственно в движке подправить генерацию ссылок вместо products.html на products.php
     
  3. 1Dreamweaver1

    1Dreamweaver1

    Регистр.:
    5 янв 2008
    Сообщения:
    417
    Симпатии:
    44
    Я пробывал так, но при переходе на ссылку выдает ошбку "500 Internal Server Error"
     
  4. dandandan

    dandandan

    Регистр.:
    7 авг 2008
    Сообщения:
    990
    Симпатии:
    267
    Вот так.
    <-------------- добавлено через 54 сек. -------------->
    Только будет не так
    а domen.ru/product_name.php
     
  5. 1Dreamweaver1

    1Dreamweaver1

    Регистр.:
    5 янв 2008
    Сообщения:
    417
    Симпатии:
    44
    Так я и не добился работы с .php, работает только с .html
    выдает ошбку "500 Internal Server Error" :(

    Код:
    RewriteRule ^(\S*)\.html$ /products.php?product_name=$1 [L] 
    работает таким образом: В скрипте обрабатывается product_name, который тянется с mysql.

    domen.ru/product.html (где product это название продукта, которое может быть любым)
    К приеру:
    domen.ru/name-of-product.html
    domen.ru/some-product.html
    domen.ru/name-of-product1.html
    ...

    И еще такая проблема:
    Если я делаю два таких правила
    Код:
    RewriteRule ^(\S*)\.html$ /products.php?product_name=$1 [L]
    RewriteRule ^(\S*)\.html$ /articles.php?article_name=$1 [L] 
    то второе правило не выполняется