Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум Apache

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: обращение только по реврайту
 
 автор: admiral   (11.10.2009 в 21:09)   письмо автору
 
 

как исключить того чтобы tckb вместо site.ru/articles/1 пользователь набрал site.ru/articles.php?mod=article&id=1 выдать ошибку 404 ?

  Ответить  
 
 автор: cheops   (11.10.2009 в 21:55)   письмо автору
 
   для: admiral   (11.10.2009 в 21:09)
 

Нужно выудить правилом адрес site.ru/articles.php?mod=article&id=1 и назначить ему директивы L и R (вместо R можно использовать G или F).

  Ответить  
 
 автор: admiral   (11.10.2009 в 22:03)   письмо автору
 
   для: cheops   (11.10.2009 в 21:55)
 

Можно на примере?
Есть правило
RewriteRule ^(article)/([0-9]*)(/?)$ articles.php?mod=$1&id=$2 [QSA,L]

  Ответить  
 
 автор: serjinio   (12.10.2009 в 12:42)   письмо автору
 
   для: admiral   (11.10.2009 в 22:03)
 

RewriteRule ^article/(

  Ответить  
 
 автор: admiral   (12.10.2009 в 16:40)   письмо автору
 
   для: serjinio   (12.10.2009 в 12:42)
 

не понял?

  Ответить  
 
 автор: serjinio   (13.10.2009 в 15:14)   письмо автору
 
   для: admiral   (12.10.2009 в 16:40)
 

mod=$1&id=$2 переменных 2 а в скобках 3

  Ответить  
 
 автор: heed   (13.10.2009 в 21:12)   письмо автору
 
   для: admiral   (12.10.2009 в 16:40)
 

имхо не получится просто так закрыть доступ чтобы не закрыть его при реврайте,
с каждым совпавшим правилом выполняется переброс на этот запрос(видимый или не видимый для браузера), и правила проверяются снова , даже хоть и было [L]
, есть способы отделять внутренние подзапросы сервера от запросов , но реврайт-перенаправления не попадают под внутренние подзапросы.
Возможно я чего-то не знаю, но по моему можно перебрасывать только с ещё одним дополнительным параметром , который и будет индикатором того что переход по мод-реврайт ,
(что сделает опять-же доступной прямую ссылку с этим параметром)
или можно попробовать с ENV-переменными , но точно не скажу, помню что пробовал но не помню что получилось

  Ответить  
 
 автор: admiral   (14.10.2009 в 21:49)   письмо автору
 
   для: heed   (13.10.2009 в 21:12)
 

а что если на уровне php проверять $_SERVER['REQUEST_URI'] и проверять регуляркоами совпадает ли такому типу /article/1/ , тоесть если будет mod=article&id=... то уже не правильно и соответсвенно генерировать 404

  Ответить  
 
 автор: heed   (15.10.2009 в 01:06)   письмо автору
 
   для: admiral   (14.10.2009 в 21:49)
 

На уровне php точно можно определить по какой ссылке попали на скрипт

,попробовал снова на уровне htaccess с несколькими ENV-переменными , ничего не получилось , по крайней мере на виндовс с apache2.2. на других осях переменные отличаются.
но всёравно ещё пока нет уверенности ,) что нельзя такое сделать в htaccess без посредства изменения строки запроса

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования