Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Использование mod_rewrite

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: Одно правило "сделал", как сделать второе не пойму..
maksmib
Отправлено: 01 Декабря, 2010 - 18:42:40
Post Id



Гость


Покинул форум
Сообщений всего: 92
Дата рег-ции: Дек. 2009  


Помог: 0 раз(а)




Добрый вечер, товарищи.
Пытаюсь разобраться с ЧПУ. Есть два варианта формирования url'ов в адресной строке:
1. при просмотре категории:
mysite.net/index.php?cid=7

2. при просмотре определенной статьи принадлежащей опр. категории:
mysite.net/index.php?cid=7&aid=10

cid - от "category id", aid - соответственно "article id"

Надо добиться результата, когда при просмотре статьи URL выглядит так:
mysite.net/category_name/alterna tiv_nazv_statyi.html

С помощью http://www[dot]generateit[dot]net/mod-rewrite/ получилось добиться результата, при котором удается по ЧПУ прочитать новость.
Тоесть сейчас мой .htaccess выглядит так:

CODE (htmlphp):
скопировать код в буфер обмена
  1. RewriteEngine On
  2. RewriteRule ^([^/]*)/([^/]*)\.html$ /index.php?cid=$1&aid=$2 [L]

И я могу получить доступ к статье так: mysite.net/7/10.html

Но!..
Если перейти по: mysite.net/7 (..или mysite.net/7/)
я не могу просмотреть категорию, тоесть список находящихся в ней статей.

Скажите пожалуйста описанного правила в .htaccess достаточно чтобы работали оба варианта ссылок (и mysite.net/7/ и mysite.net/7/10.html) или надо еще одно правило предусмотреть? Ниндзя

(Отредактировано автором: 01 Декабря, 2010 - 18:44:01)

 
 Top
OrmaJever Модератор
Отправлено: 01 Декабря, 2010 - 18:58:01
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




CODE (html):
скопировать код в буфер обмена
  1. RewriteEngine On
  2. RewriteRule ^([a-z0-9]+)/$ /index.php?cid=$1 [L]
  3. RewriteRule ^([a-z0-9]+)/([a-z0-9]+)\.html$ /index.php?cid=$1&aid=$2 [L]

вот так попробуй

(Отредактировано автором: 01 Декабря, 2010 - 18:58:44)



-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
maksmib
Отправлено: 01 Декабря, 2010 - 19:02:09
Post Id



Гость


Покинул форум
Сообщений всего: 92
Дата рег-ции: Дек. 2009  


Помог: 0 раз(а)




OrmaJever? ёлы палы, отлично! Просто отлично! Спасибо большое! Улыбка
 
 Top
OrmaJever Модератор
Отправлено: 01 Декабря, 2010 - 19:06:29
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




maksmib пишет:
OrmaJever?


сам в шоке!

Да незачто!) Описал проблему чётко и ясно и быстро получил ответ


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
maksmib
Отправлено: 12 Января, 2011 - 17:15:15
Post Id



Гость


Покинул форум
Сообщений всего: 92
Дата рег-ции: Дек. 2009  


Помог: 0 раз(а)




Добрый вечер еще раз, господа.
Новая "проблема" Хм

Я благополучно использовал вышеописанный способ.
и получается так, что у меня есть всего один файл, собственно index.php
и в нем уже я "обрабатываю" параметры полученные из адресной строки

но возникает проблема блин ..когда имеешь дело с более или менее большим проектом, хочется как то распределить задачи между несколькими скриптами, напр.:
login.php
registration.php

Но при этом надо как то сохранить вид строки адресной, чтобы он был соответственно:
mysite.com/login
mysite.com/registration

Как это реализуется практически?
 
 Top
OrmaJever Модератор
Отправлено: 12 Января, 2011 - 18:18:52
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




та ещё проще))
CODE (htmlphp):
скопировать код в буфер обмена
  1. RewriteRule ^([a-z_]+)$ $1.php [L]


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
maksmib
Отправлено: 12 Января, 2011 - 18:26:37
Post Id



Гость


Покинул форум
Сообщений всего: 92
Дата рег-ции: Дек. 2009  


Помог: 0 раз(а)




Ну да, логично ..блин, я не додумался А?! Не понял
Круто, спасибо вам большое еще раз!!! Улыбка
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB