Автор Тема: mod_rewrite  (Прочитано 9897 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Greg

  • пинёг
  • Ветеран
  • *****
  • Сообщений: 618
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.bsfera.ru
mod_rewrite
« : 04 Октября 2007, 11:51:51 »
помогите с правилами. берусь за него первый раз и нужно сделать достаточно быстро, поэтому нет времени на тотальное изучение (ну, простите! обязательно потом изучу!).

итак, есть урл вида http://www.site.ru/catalog/yyyy-mm-dd/document_id/
нужно чтобы открывалась страница
http://www.site.ru?url=document_id/
doceument_id - число
catalog - просто буквы
yyyy-mm-dd - дата вида 2007-10-04

что нужно писать в .htaccess
Пространные размышления об ИТ и все что вокруг

Оффлайн html_coder

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 427
  • +0/-0
  • 0
    • Просмотр профиля
mod_rewrite
« Ответ #1 : 04 Октября 2007, 12:58:54 »
Greg


А какой смысл в /catalog/yyyy-mm-dd/ если они в скрипт не передаются, просто для красоты, почему тогда нельзя сделать просто url вида http://www.site.ru/document_id/?

Оффлайн commander

  • Developer
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1298
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.webtips.ru
mod_rewrite
« Ответ #2 : 04 Октября 2007, 13:17:38 »
Greg
RewriteEngine On
Options +FollowSymLinks
RewriteBase /

RewriteRule ^/catalog/yyyy-mm-dd/([0-9]+)/$ /url=$1/ [L]
RewriteRule ^/catalog/yyyy-mm-dd/([0-9]+)$ /url=$1/ [L]
And no religion too...

Оффлайн Greg

  • пинёг
  • Ветеран
  • *****
  • Сообщений: 618
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.bsfera.ru
mod_rewrite
« Ответ #3 : 04 Октября 2007, 14:09:09 »
html_coder
ну пусть они тоже передаются тогда. в ринципе необходимости в них нет, но можно оставить на будущее. а смысл в них в том, чтобы пользователь мог видеть это в ссылке. идея не моя, условие поставлено, нужно решить ;)

commander
catalog, yyyy-mm-dd - это я привел просто шаблоны. т.е. ссылка может выглядеть так:http://www.site.ru/auto/2007-10-04/82658/
или так http://www.site.ru/global/2006-04-25/12654/
в правилах, которые вы привели, это учитывается?
там наверное тоже регулярки какие то проставить?
Пространные размышления об ИТ и все что вокруг

Оффлайн commander

  • Developer
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1298
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.webtips.ru
mod_rewrite
« Ответ #4 : 04 Октября 2007, 16:31:39 »
Greg

RewriteRule ^/catalog/(.*)/([0-9]+)$ /url=$1/ [L]
And no religion too...

Оффлайн Greg

  • пинёг
  • Ветеран
  • *****
  • Сообщений: 618
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.bsfera.ru
mod_rewrite
« Ответ #5 : 05 Октября 2007, 08:33:37 »
commander
спасибо. но выходит 404 :( приведу полностью текст .htaccess:
Цитировать
ExpiresActive On
ExpiresDefault "modification plus 0 minutes"

ErrorDocument 404 /errors/404.html

RewriteEngine On
Options +FollowSymLinks
RewriteBase /
RewriteRule ^/(.*)/(.*)/([0-9]+)/$ /url=$1/ [L]
RewriteRule ^/(.*)/(.*)/([0-9]+)$ /url=$1/ [L]
Пространные размышления об ИТ и все что вокруг

Оффлайн commander

  • Developer
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1298
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.webtips.ru
mod_rewrite
« Ответ #6 : 05 Октября 2007, 09:51:06 »
RewriteEngine On
Options +FollowSymLinks
RewriteBase /
RewriteRule ^/(.*)/(.*)/([0-9]+)/$ /url=$3/ [L]
RewriteRule ^/(.*)/(.*)/([0-9]+)$ /url=$3/ [L]
And no religion too...

Оффлайн Greg

  • пинёг
  • Ветеран
  • *****
  • Сообщений: 618
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.bsfera.ru
mod_rewrite
« Ответ #7 : 05 Октября 2007, 14:14:50 »
наешл таки ошибку - в начале не нужен слеш!
вот итог:
Цитировать
RewriteEngine On
Options +FollowSymLinks
RewriteBase /
RewriteRule ^([a-z]+)/(.*)/([0-9]+)$ /?cat=$1&date=$2&ext_news=$3 [L]
RewriteRule ^([a-z]+)/(.*)/([0-9]+)/$ /?cat=$1&date=$2&ext_news=$3 [L]

RewriteRule ^([a-z]+)/(.*)/images/(.*)$ /images/$3
RewriteRule ^([a-z]+)/(.*)/images/(.*)/$ /images/$3
RewriteRule ^(.*)scripts/(.*)$ scripts/$2
RewriteRule ^(.*)css/(.*)$ css/$2
RewriteRule ^(.*)js/(.*)$ css/$2

вторая часть кода "исправляет" пути к какртинкам, скриптам и т.п. осталось одно: сделать алиас ссылки. т.е. чтобы domain.site.ru/link и site.ru/link ссылались на одну и ту же страницу. я так полагаю, что нужно как то хост переписывать?
Пространные размышления об ИТ и все что вокруг

Оффлайн commander

  • Developer
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1298
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.webtips.ru
mod_rewrite
« Ответ #8 : 06 Октября 2007, 10:53:17 »
Greg
если есть доступ к конфигу ... пропиши путь просто и делу конец...
And no religion too...

Оффлайн Greg

  • пинёг
  • Ветеран
  • *****
  • Сообщений: 618
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.bsfera.ru
mod_rewrite
« Ответ #9 : 08 Октября 2007, 10:49:00 »
commander
к конфигу доступа нет, админ велит делать все в .htaccess
Пространные размышления об ИТ и все что вокруг

Оффлайн AlainDelon

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 1
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
mod_rewrite
« Ответ #10 : 05 Ноября 2007, 15:03:46 »
Раз уж пошла такая тема, то и я вопрос задам. Опять наш пример сайт: www.site.ru. Как сделать, что бы на сайте на любую ссылку жмёшь, происходит переход, но в адресной строке эксплорера по прежнему написанно http://www.site.ru/, а не http://www.site.ru/что-то_там_ещё.html. Короче всегда http://www.site.ru/, всё равно куда жмёшь.

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28