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

Форум Apache

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

 

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

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

тема: в адресной строке прописывается get-параметр
 
 автор: Deed   (02.01.2013 в 00:44)   письмо автору
2.8 Кб
 
 

Здравствуйте и с Новым годом!
Здоровья всем, счастья и успехов во всем!

Помогите разрешить проблему.
Вот фрагмент .htaccess:

RewriteRule ^((news|main|register|user|we|new|remember|voir|stat|correspondence|\d+)(/)*)$ index.php?page=$2 [L]

То есть, таким нехитрым способом достигнута "элегантность" ссылок. Все проекрасно:
http://site.ru/stat
или
http://site.ru/we
или
http://site.ru/remember...
Но не http://site.ru/correspondence !
Именно здесь в адресной строке добавляется чертов дубль:
http://site.ru/correspondence/?page=correspondence (!!!) .
Откуда?! Какого %&$#??!! Почему??!!

Дальше в .htaccess (он приаттачен) идет:

RewriteRule ^(correspondence)(/(\d+)(/)*){0,1}$ index.php?page=$1&name=$3 [L]

(Закомментирование этой строки ничего не дает). И если вручную написать в адресной строке, к примеру - http://site.ru/correspondence/3 - все нормально.
Большое спасибо.

  Ответить  
 
 автор: cheops   (02.01.2013 в 09:39)   письмо автору
 
   для: Deed   (02.01.2013 в 00:44)
 

А у вас физически папки correspondence не существует?

  Ответить  
 
 автор: Deed   (02.01.2013 в 14:05)   письмо автору
 
   для: cheops   (02.01.2013 в 09:39)
 

Была.
Видите ли, http://site.ru/correspondence - это общая почта юзера. С пагинатором: http://site.ru/correspondence/2, http://site.ru/correspondence/3 и т.д. То есть, все написанные и полученные пользователем письма. Потом я сделал http://site.ru/correspondence/let/3 (4,5...) - каждое отдельное письмо с ответами на него. Прописал это правило в .htaccess - заработало как и было задумано:

RewriteRule ^(correspondence)(/(let)/(\d+)){0,1}/*$ index.php?page=$1&name=$3&nmr=$4 [L]

Но javascript wysiwyg'a при таком пути: http://site.ru/correspondence/let/n потерял картинку-тулбар и потребова ее из папки http://site.ru/correspondence/
Я ее создал и, вроде бы, после этого и начались вышеописанные траблы. Удаление же этой папки с перезагрузкой локалки ничего не дает.
Есть "выход" - прописать в ссылке к почте http://site.ru/correspondence/ - со слэшем в конце. Работает, но в чем проблема, так и не понятно.

  Ответить  
 
 автор: cheops   (02.01.2013 в 15:42)   письмо автору
 
   для: Deed   (02.01.2013 в 14:05)
 

>Но javascript wysiwyg'a при таком пути: http://site.ru/correspondence/let/n потерял картинку-тулбар и потребова ее из папки
>http://site.ru/correspondence/
Прописывайте везде пути к картинкам от корня сайта. Создавать папки - не дело, [L] - прекращает проверку правил только в рамках текущего файла, получив новое имя, Apache снова сравнивает его со всеми правилами и судя по всему находит соответствие. Когда пользуетесь mod_rewrite, все пути к JS-файлам, CSS-файлам и изображениям нужно прописывать от корня сайта /path/to/file.js

  Ответить  
 
 автор: Deed   (02.01.2013 в 19:24)   письмо автору
 
   для: cheops   (02.01.2013 в 15:42)
 

"От корня сайта" это начиная с www, или еще выше?
Буду признателен, если напишете пример.

  Ответить  
 
 автор: cheops   (02.01.2013 в 19:33)   письмо автору
 
   для: Deed   (02.01.2013 в 19:24)
 

От корня, значит от домена. Допустим есть адрес
http://softtime.ru/forum/read.php?id_forum=5&id_theme=88699
От корня сайта означает адрес
/forum/read.php?id_forum=5&id_theme=88699
Встретив такой адрес в HTML-коде, браузер автоматически дополнит его до
http://softtime.ru/forum/read.php?id_forum=5&id_theme=88699

  Ответить  
 
 автор: Deed   (02.01.2013 в 21:41)   письмо автору
 
   для: cheops   (02.01.2013 в 19:33)
 

Значит, в моем случае браузер почему-то считает correspondence/ корнем и лепит к нему get?

P.S. Я убрал директорию /correspondence.

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

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