Форум русскоязычного сообщества Ubuntu


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: Apache2 + mod_rewrite = проблема..  (Прочитано 1002 раз)

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

Оффлайн MAKAPOH

  • Автор темы
  • Любитель
  • *
  • Сообщений: 74
    • Просмотр профиля
Apache2 + mod_rewrite = проблема..
« : 08 Сентября 2010, 23:45:06 »
Не знаю уже куда копать...
Есть правило в .htaccess
RewriteRule ^get/([0-9+])(/?)$ /get.php?id=$1то есть мне нужно переписывать обращения к /get/10 на /get.php?id=10
при этом обращение к get.php идет, но параметры не передаются вообще

Вот такое правило работает
RewriteRule ^get([0-9+])(/?)$ /get.php?id=$1то есть переписывает например /get10 на /get.php?id=10

Покопавшись 2 дня  наткнулся на замечательный факт:
При обращении на /index/2 апач пишет
The requested URL /index.html/2 was not found on this server.при обращении например на /index2/2 апач загружает index2.php

то есть он сам пытается искать похожие файлы.. как его от этого отучить?)

Оффлайн Mam(O)n

  • Старожил
  • *
  • Сообщений: 5855
    • Просмотр профиля
Re: Apache2 + mod_rewrite = проблема..
« Ответ #1 : 09 Сентября 2010, 00:06:02 »
то есть он сам пытается искать похожие файлы.. как его от этого отучить?)
Опытным путем было получено следующее заклинание:
sudo a2dismod negotiationосталось почитать документацию...

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28511
    • Просмотр профиля
Re: Apache2 + mod_rewrite = проблема..
« Ответ #2 : 09 Сентября 2010, 00:35:44 »
Не знаю уже куда копать...
Есть правило в .htaccess
RewriteRule ^get/([0-9+])(/?)$ /get.php?id=$1

Кто тебе ЭТО писал? Всё неправильно.

Цитировать
то есть мне нужно переписывать обращения к /get/10 на /get.php?id=10
при этом обращение к get.php идет, но параметры не передаются вообще

Неудивительно.

1. База на реврайт какая стоит?
2. RewriteLog в зубы.

Цитировать
Вот такое правило работает
RewriteRule ^get([0-9+])(/?)$ /get.php?id=$1то есть переписывает например /get10 на /get.php?id=10

Не переписывает.
Цитировать
Not Found

The requested URL /get10 was not found on this server.

Максимум, перепишет /get9.

Цитировать
Покопавшись 2 дня  наткнулся на замечательный факт:
При обращении на /index/2 апач пишет
The requested URL /index.html/2 was not found on this server.при обращении например на /index2/2 апач загружает index2.php

то есть он сам пытается искать похожие файлы.. как его от этого отучить?)

Поставь задачу нормально. Получишь ответ.
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн MAKAPOH

  • Автор темы
  • Любитель
  • *
  • Сообщений: 74
    • Просмотр профиля
Re: Apache2 + mod_rewrite = проблема..
« Ответ #3 : 09 Сентября 2010, 02:28:48 »
Кто тебе ЭТО писал? Всё неправильно.
Что неправильного то?) все работает :)

Не переписывает.
Максимум, перепишет /get9.
это еще почему?)

Пользователь решил продолжить мысль 09 Сентября 2010, 02:29:12:
то есть он сам пытается искать похожие файлы.. как его от этого отучить?)
Опытным путем было получено следующее заклинание:
sudo a2dismod negotiationосталось почитать документацию...

Спасибо огромное, помогло :)

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28511
    • Просмотр профиля
Re: Apache2 + mod_rewrite = проблема..
« Ответ #4 : 09 Сентября 2010, 03:44:30 »
Кто тебе ЭТО писал? Всё неправильно.
Что неправильного то?) все работает :)

Ну наверное я не стал бы говорить, не проверив?
Не работает. Либо копируйте реальный реврайт, а не из головы придуманный по ходу написания сообщения.

Цитировать
Не переписывает.
Максимум, перепишет /get9.
это еще почему?)

Потому что [0-9+]
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн MAKAPOH

  • Автор темы
  • Любитель
  • *
  • Сообщений: 74
    • Просмотр профиля
Re: Apache2 + mod_rewrite = проблема..
« Ответ #5 : 09 Сентября 2010, 03:59:04 »
Кто тебе ЭТО писал? Всё неправильно.
Что неправильного то?) все работает :)

Ну наверное я не стал бы говорить, не проверив?
Не работает. Либо копируйте реальный реврайт, а не из головы придуманный по ходу написания сообщения.

Цитировать
Не переписывает.
Максимум, перепишет /get9.
это еще почему?)

Потому что [0-9+]

работает, проверено :)
а что такого в [0-9+]?

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28511
    • Просмотр профиля
Re: Apache2 + mod_rewrite = проблема..
« Ответ #6 : 09 Сентября 2010, 04:38:48 »
Что именно у тебя работает?

<IfModule rewrite_module>

  RewriteEngine On
  RewriteBase "/"

  RewriteRule "^get/([0-9+])(/?)$" "/index.php?id=$1" [last]
</IfModule>

curl http://localhost/get/10

Not Found

The requested URL /get/10 was not found on this server.
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн MAKAPOH

  • Автор темы
  • Любитель
  • *
  • Сообщений: 74
    • Просмотр профиля
Re: Apache2 + mod_rewrite = проблема..
« Ответ #7 : 09 Сентября 2010, 05:48:52 »
Что именно у тебя работает?
.htaccess:
RewriteEngine on
RewriteBase /
Options +FollowSymlinks -MultiViews -Indexes
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^view/([0-9]+)(/?)$ /view.php?id=$1
RewriteRule ^get/([0-9]+)(/?)$ /get.php?id=$1

get.php:
echo "\$_GET[\"id\"] => " . $_GET["id"];
curl http://localhost/get/10
$_GET["id"] => 10

curl http://localhost/get/100500
$_GET["id"] => 100500

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28511
    • Просмотр профиля
Re: Apache2 + mod_rewrite = проблема..
« Ответ #8 : 09 Сентября 2010, 05:53:22 »
А теперь внимательно сравни
[0-9+]
и
[0-9]+
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн MAKAPOH

  • Автор темы
  • Любитель
  • *
  • Сообщений: 74
    • Просмотр профиля
Re: Apache2 + mod_rewrite = проблема..
« Ответ #9 : 09 Сентября 2010, 06:37:21 »
А теперь внимательно сравни
[0-9+]
и
[0-9]+
упс :) ошибочка :)
да, действительно косяк :) писал вручную потому что в htaccess в это время была вобще другая маска для проверки :)

 

Страница сгенерирована за 0.017 секунд. Запросов: 20.