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

Форум Apache

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

 

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

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

тема: mod_rewrite
 
 автор: ruler   (22.08.2011 в 22:32)   письмо автору
 
 

Не совсем хорошо догоняю рег.выражения в mod_rewrite.

Подскажите плиз, как преобразовать следующие страницы:
http://www.domen.com/index
http://www.domen.com/1
http://www.domen.com/главная

в http://www.domen.com/
через 301 редирект [L,R=301]

  Ответить  
 
 автор: cheops   (23.08.2011 в 09:50)   письмо автору
 
   для: ruler   (22.08.2011 в 22:32)
 

Здесь можно обойтись без mod_rewrite, воспользовавшись директивой Redirect или RedirectPermanent (правда с русскими буквами могут быть проблемы, лучше их предварительно перекодировать)
RedirectPermanent /index /
RedirectPermanent /1 /
RedirectPermanent /главная / 

  Ответить  
 
 автор: Ruler   (23.08.2011 в 13:46)   письмо автору
 
   для: cheops   (23.08.2011 в 09:50)
 

Русские то перекодирую. А это разве 301 редирект? Мне нужно имено 301-м.

Более того перенаправление по вашему способу происходит на URL вида http://www.domen.com/?q=index, а в случае единицы на конце http://www.domen.com/?q=1
так не годится

  Ответить  
 
 автор: cheops   (23.08.2011 в 15:46)   письмо автору
 
   для: Ruler   (23.08.2011 в 13:46)
 

>Русские то перекодирую. А это разве 301 редирект? Мне нужно имено 301-м.
Да, это он, можно использовать Permanent, указывая после него HTTP-код явно.

  Ответить  
 
 автор: cheops   (23.08.2011 в 15:48)   письмо автору
 
   для: Ruler   (23.08.2011 в 13:46)
 

>Более того перенаправление по вашему способу происходит на URL
>вида http://www.domen.com/?q=index, а в случае единицы на конце http://www.domen.com/?q=1
>так не годится
Не очень понятно. Откуда взялся параметр, у вас URL-адреса уже преобразованы при помощи mod_rewrite?

  Ответить  
 
 автор: Ruler   (30.08.2011 в 20:29)   письмо автору
 
   для: cheops   (23.08.2011 в 15:48)
 

Да да, совершенно верно, уже преобразованый

# For Friendly URLs
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]

  Ответить  
 
 автор: cheops   (31.08.2011 в 16:08)   письмо автору
 
   для: Ruler   (30.08.2011 в 20:29)
 

А какому критерию должны удовлетворять ссылки вида
http://www.domen.com/index
 http://www.domen.com/1
 http://www.domen.com/главная
Это не существующие ссылки или какие-то конкретно выбранные? В самом простом случае можно перед этим правилом добавить новое, которое будет перехватывать ссылки
# For Bad URLs 
RewriteCond %{REQUEST_FILENAME} ^1$
RewriteRule ^(.*)$ / [L,R]
# For Friendly URLs 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]

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

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