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

Форум Apache

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

 

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

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

тема: ReWriteRule не работает: (
 
 автор: SoFuWa   (21.06.2010 в 15:40)   письмо автору
 
 

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
RewriteRule /sdfsdfsdf /about [L,R]
</IfModule>
# END WordPress


RewriteRule /sdfsdfsdf /about [L,R] - не работает, пробовал записывать по всякому, Wordpress пишит "страница не найдена". Это просто я простейший пример привёл, потому что оно вообще не работает. Redirect работает, но мне нужно определить переадресацию для множества страниц.
Подскажите почему может не работать? Пробую на денвере и на хостинге.

  Ответить  
 
 автор: klimov   (23.06.2010 в 02:20)   письмо автору
 
   для: SoFuWa   (21.06.2010 в 15:40)
 

Оно и не должно работать, ибо:
RewriteRule . /index.php [L]

убери [L] и дожно заработать.

Читать:
http://httpd.apache.org/docs/2.2/mod/mod_rewrite.html

  Ответить  
 
 автор: SoFuWa   (23.06.2010 в 17:08)   письмо автору
 
   для: klimov   (23.06.2010 в 02:20)
 

спасибо что ответили, я в этом не спец, просто хотел сайт улучшить =) написал сюда не сразу, а весь день копал на эту тему в поисковиках, даже научился запросы составлять с этими запутанными регулярными выражениями

  Ответить  
 
 автор: SoFuWa   (23.06.2010 в 17:13)   письмо автору
 
   для: SoFuWa   (23.06.2010 в 17:08)
 

Убрал, а всё равно не работает, почему же у меня не работает даже самое простейшее правило? O_o

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php
RewriteRule /sdfsdfsdf /about [L,R]
</IfModule>
# END WordPress

  Ответить  
 
 автор: klimov   (23.06.2010 в 21:55)   письмо автору
 
   для: SoFuWa   (23.06.2010 в 17:13)
 

RewriteRule . /index.php - перенеправлять все запросы на index.php. На этом правиле все останавливается.

Вот если попробовать так то должно работать, (ключевое слово должно):

RewriteEngine On #- включение rewritte - если не задать, то ни одна директива не сработает.
RewriteBase / # делать все переалресации начиная от корня сайта.

# Условия
# %{REQUEST_FILENAME} - внутренняя переменная apache. Содержит путь к запрашиваемому файлу
RewriteCond %{REQUEST_FILENAME} !-f - запрашиваемый путь не файл
RewriteCond %{REQUEST_FILENAME} !-d - и не папка

# правила, которые обрабатываются если RewriteCond'ы выше верные
RewriteRule /sdfsdfsdf /about - при запросе /sdfsdfsdf отдавать файл /about
RewriteRule . /index.php - при любом запросе отдавать /index.php

  Ответить  
 
 автор: klimov   (23.06.2010 в 21:57)   письмо автору
 
   для: SoFuWa   (23.06.2010 в 17:08)
 

А что хотел улучшить?:)

  Ответить  
 
 автор: SoFuWa   (23.06.2010 в 22:34)   письмо автору
 
   для: klimov   (23.06.2010 в 21:57)
 

Да на вордпресс сайт перенёс и там адресса другие и по старым адрессам теперь не открываются, а страницы были проиндексированы. Правило уже написал.

Всё равно не работает =) только теперь пишет "Internal Server Error" как только до RewriteRule . /index.php пишешь хоть 1 правило сразу такая фигня. Как же люди делают О_о
Даже если в адрессной строке написать http://aidsbratsksat.ru/index.php всё равно ошибка, не понимаю зачем эта надпись, и как бы сделать чтоб сначало моё правило проверялось а потом это.

  Ответить  
 
 автор: klimov   (23.06.2010 в 23:43)   письмо автору
 
   для: SoFuWa   (23.06.2010 в 22:34)
 

Тогда пробуй менять Rule на эти:

RewriteRule ^sdf /about [R=301,L]
RewriteRule ^[^index.php](.*) /index.php [R=301,L]

у меня работает)

  Ответить  
 
 автор: klimov   (23.06.2010 в 23:45)   письмо автору
 
   для: klimov   (23.06.2010 в 23:43)
 

?

  Ответить  
 
 автор: klimov   (24.06.2010 в 00:00)   письмо автору
 
   для: klimov   (23.06.2010 в 23:43)
 

?

  Ответить  
 
 автор: klimov   (23.06.2010 в 23:46)   письмо автору
 
   для: SoFuWa   (23.06.2010 в 22:34)
 

Во!

RewriteEngine On
RewriteRule ^sdf /about [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* /index.php [R=301,L]

  Ответить  
 
 автор: SoFuWa   (24.06.2010 в 13:57)   письмо автору
 
   для: klimov   (23.06.2010 в 23:46)
 

Египетская сила, заработало =)) спасибо.
Я тебя наверно достал уже, но такая фигня - с кванторами в URL не работает /index.php?view=items&cid=2&id=37%3A---&option=com_quickfaq&Itemid=24

например пишем правило
RewriteRule ^sdf?sdfd /about [R=301,L] - тут знак вопроса в URL и не работает нифига, ещё встречается ":" двоеточие, их вроде экранировать что ли надо обратным слешем, но так тоже не работает asdfd\?sfd. Есть какие мысли по этому поводу? Может встречался.

  Ответить  
 
 автор: liadesign   (18.11.2012 в 18:06)   письмо автору
 
   для: SoFuWa   (21.06.2010 в 15:40)
 

Добрый день!
Я столкнулся с такой проблемой.
Мой сайт выдает в ссылке руское название как поменять его на латинское к примеру УСЛУГИ на USLUGI

вот пример сайта

http://artixpro.kz/#!/УСЛУГИ
а надо
http://artixpro.kz/#!/uslugi

и как избавиться от этих символов #!

Я делаю вот так но у меня ничего непроисходит

RewriteEngine On
RewriteRule ^услуги /uslugi [L,R=301]

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

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