Добрый вечер. Делаю всё по инструкции LoadModule rewrite_module modules/mod_rewrite.so Включил Код (PHP): <Directory /> Options All AllowOverride All </Directory> DocumentRoot "/srv/http/www/test62.ru" <Directory "/srv/http/www/test62.ru"> Options All AllowOverride All </Directory> .htaccess Код (PHP): RewriteEngine on RewriteCond $1 !^(index\.php|images|robots\.txt) RewriteRule ^(.*)$ /index.php/$1 [L] В итоге, когда пытаешся заяти без index.php, то выдается: 404 Page Not Found The page you requested was not found. В логи видно, что срабатывает, как то странно: Код (PHP): [Thu Jan 07 22:33:37.039332 2016] [rewrite:trace3] [pid 11823] mod_rewrite.c(476): [client ::1:40862] ::1 - - [localhost/sid#1ede3a0][rid#217f950/subreq] [perdir /srv/http/www/test62.ru/] applying pattern '^(.*)$' to uri 'www/test62.ru/Auth' [Thu Jan 07 22:33:37.039345 2016] [rewrite:trace2] [pid 11823] mod_rewrite.c(476): [client ::1:40862] ::1 - - [localhost/sid#1ede3a0][rid#217f950/subreq] [perdir /srv/http/www/test62.ru/] rewrite 'www/test62.ru/Auth' -> '/index.php/www/test62.ru/Auth' [Thu Jan 07 22:33:37.039359 2016] [rewrite:trace2] [pid 11823] mod_rewrite.c(476): [client ::1:40862] ::1 - - [localhost/sid#1ede3a0][rid#217f950/subreq] [perdir /srv/http/www/test62.ru/] trying to replace context docroot /srv/http/www/test62.ru with context prefix [Thu Jan 07 22:33:37.039374 2016] [rewrite:trace1] [pid 11823] mod_rewrite.c(476): [client ::1:40862] ::1 - - [localhost/sid#1ede3a0][rid#217f950/subreq] [perdir /srv/http/www/test62.ru/] internal redirect with /index.php/www/test62.ru/Auth [INTERNAL REDIRECT] не забывай пользоваться ббкодами. [code=php] для любого кода, включая конфиги. [code] для выводимого текста. — модераторъ
мне не надо предположений и вероятностей. я спрашиваю у тс что делает баксван в кондишне. он же его туда написал
Это результата не дало Уточнение: www/test62.ru/index.php - корень сайта CodeIgnitor: www/test62.ru/1/ Views с правильным index.php в: www/test62.ru/1/views/
ясно. а еще погуглить не осталось сил... ничего там бакс-ван не может делать. он еще не определен к этому моменту. замените его на %{REQUEST_URI}
А попонятнее? Единственно, что ещё нагуглил Код (PHP): RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php/$1 [L] Но итог тотже
а ты понимаешь как работает то что ты копипастишь? и что непонятного в выражении "замени это на это"? вот прочитай мне правила из своего первого поста и из того что ты еще нагуглил. сможешь? они достаточно легко в русский язык трансформируются.
"замени это на это" - "бакс-ван" к сожалению не знаю, что это. RewriteCond - это условие при котором срабатывает правило. RewriteRule - правило
я тебя поздравляю. ты сунулся в программирование где 99% лексем на английском языке с нулевым знанием английского языка. а еще ты сунулся в программирование где очень важна смекалка с нулевой смекалкой. бакс это baks - символ доллара - $. ван - упрощенная транскрипция английского one - один, единица - 1. бакс-ван тождественно равно последовательности $1 о которой я говорил буквально в первом же ответе в этой теме. и больше я ни о чем не говорил. значит я продолжаю ссылаться на $1 говоря бакс-ван. ЛОГИЧНО? я не прошу сказать мне что из этого что делает. я прошу перевести тот алгоритм который написан на русский язык. представь себе всё тобою написанное может звучать на русском языке. и очень важно уметь читать эти правила на русском, на русском формулировать правильные правила и потом из русского переводить на лексемы... да на лексемы вообще любого языка программирования. если ты видишь алгоритм то какая разница как каком языке его реализовать? ну естественно надо будет реализовывать на самом подходящем. но сейчас не об этом же.
Итог: Код (PHP): RewriteEngine on RewriteCond %{REQUEST_URI} !^(index\.php|images|robots\.txt) RewriteRule ^(.*)$ /index.php/%{REQUEST_URI} [L] Код (PHP): Internal Server Error The server encountered an internal error or misconfiguration and was unable to complete your request. Please contact the server administrator at you@example.com to inform them of the time this error occurred, and the actions you performed just before this error. More information about this error may be available in the server error log. Additionally, a 500 Internal Server Error error was encountered while trying to use an ErrorDocument to handle the request. Код (PHP): [Fri Jan 08 14:55:30.958589 2016] [rewrite:trace2] [pid 13003] mod_rewrite.c(476): [client ::1:44460] ::1 - - [localhost/sid#196e3a0][rid#1c4b818/initial/redir#10] [perdir /srv/http/www/test62.ru/] trying to replace context docroot /srv/http/www/test62.ru with context prefix [Fri Jan 08 14:55:30.958598 2016] [rewrite:trace1] [pid 13003] mod_rewrite.c(476): [client ::1:44460] ::1 - - [localhost/sid#196e3a0][rid#1c4b818/initial/redir#10] [perdir /srv/http/www/test62.ru/] internal redirect with /index.php//index.php//index.php//index.php//index.php//index.php//index.php//index.php//index.php//index.php//index.php//www/test62.ru [INTERNAL REDIRECT] Подсказка от модератора: Любой код или текст конфигурации пишите между тегом [code=php] и [/code]. Используйте отступы в коде для форматирования текста. Это помогает быстрее понять вас, увеличивает шанс на получение ответа. Что выделять? Например: PHP, HTML, CSS, JavaScript, SQL, XML, .htaccess, ini, регулярные выражения, код шаблонизаторов, любая другая разметка, результаты array/object dump и т. д.
Я только одного не понимаю, ты правильный .htaccess не можешь написать? Или будем писать "сходи в ->" и < и ^^^^^ ))) ""
Вы друг друга не слышите. shtrih, отвлекись от кодеигнайтера, двигайся от простого к менее простому. Оставь в ДокументРут один только index.php в котором выводится REQUEST_URI и .htaccess в котором только рерайт и нет ничего не по теме. И на них добейся чего надо. Пример с !-f точно должен работать, если в принципе рерайтинг работает.
ты не просил тебе готового решения давать. ты в форуме новичков значит мы тут твои знания выправляем. увидев твое правило я сразу задал тебе наводящий вопрос "что делает то-то там-то" но ты вместо того чтоб ответить мне "ну я думаю что оно делает то-то потому что так-то" или честно сказать "я не знаю, потому что в инструкции вообще не разбирают как работает рерайтер" ты начинаешь истерить и закидывать меня новыми правилами рерайта, которые ты тоже не понимаешь потому что тоже только увидел в интернете. а я ведь четко спросил "что делает то-то там-то" и потом так же четко попросил перевести скопипастенные тобой правила на русский язык. внимательнее будь. тут на тебя никто не наезжал.
Начал с простого. И самое простое тоже не заработало. Что не так? Хотя в логах всё хорошо Код (PHP): Options +FollowSymLinks RewriteEngine On RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php [L,QSA] Код (PHP): [Fri Jan 08 23:50:41.374607 2016] [rewrite:trace3] [pid 13005] mod_rewrite.c(476): [client ::1:48050] ::1 - - [localhost/sid#196e3a0][rid#1c10340/initial/redir#1] [perdir /srv/http/www/test62.ru/] applying pattern '^(.*)$' to uri 'index.php' [Fri Jan 08 23:50:41.374627 2016] [rewrite:trace1] [pid 13005] mod_rewrite.c(476): [client ::1:48050] ::1 - - [localhost/sid#196e3a0][rid#1c10340/initial/redir#1] [perdir /srv/http/www/test62.ru/] pass through /srv/http/www/test62.ru/index.php Добавлено спустя 1 минуту 28 секунд: Честно скажу, я с .htaccess первый раз. Пока мне он не требовался, для моих маленьких задач. Поэтому столько затруднений После определенных изменений в настройках апача удалось добиться, что index.php запустился. Но к сожалению обычный. Если используется index.php code igniter, то он отрабатывает не корректно. А именно Код (PHP): Options +FollowSymLinks RewriteEngine On RewriteBase /srv/http/www/test62.ru/ RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php/$1 [L,QSA] Код (PHP): [Sat Jan 09 00:20:58.958642 2016] [rewrite:trace2] [pid 16067] mod_rewrite.c(476): [client ::1:48406] ::1 - - [localhost/sid#a893a0][rid#d26930/initial] [perdir /srv/http/www/test62.ru/] trying to replace prefix /srv/http/www/test62.ru/ with /srv/http/www/test62.ru/, referer: http://localhost/www/test62.ru/ [Sat Jan 09 00:20:58.958648 2016] [rewrite:trace1] [pid 16067] mod_rewrite.c(476): [client ::1:48406] ::1 - - [localhost/sid#a893a0][rid#d26930/initial] [perdir /srv/http/www/test62.ru/] internal redirect with /srv/http/www/test62.ru/index.php/auth/login [INTERNAL REDIRECT], referer: http://localhost/www/test62.ru/ В логах всё вроде хорошо, а страницу не загружает Подсказка от модератора: Любой код или текст конфигурации пишите между тегом [code=php] и [/code]. Используйте отступы в коде для форматирования текста. Это помогает быстрее понять вас, увеличивает шанс на получение ответа. Что выделять? Например: PHP, HTML, CSS, JavaScript, SQL, XML, .htaccess, ini, регулярные выражения, код шаблонизаторов, любая другая разметка, результаты array/object dump и т. д.
Не понял что именно некорректно. Но кажется должен быть / перед index. Вернись к простому и добейся результата для разных адресов.
Оказалось, что не работает с изучаемой мною разработкой "Система авторизации Ion Auth". Там везде используется медот перенаправления redirect('auth/login', 'refresh'); и тогда страница не отображается без index.php, а если использовать стандартный метод $this->load->view('auth/login'); то так работает. Что можете посоветовать? Добавлено спустя 4 минуты 53 секунды: Решение: Код (PHP): RewriteEngine On RewriteRule ^index.php/(.*)$ /$1 [R=302,L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteCond $1 !^(index\.php|images|robots\.txt) RewriteRule ^(.*)$ index.php?/$1 [L] Подсказка от модератора: Любой код или текст конфигурации пишите между тегом [code=php] и [/code]. Используйте отступы в коде для форматирования текста. Это помогает быстрее понять вас, увеличивает шанс на получение ответа. Что выделять? Например: PHP, HTML, CSS, JavaScript, SQL, XML, .htaccess, ini, регулярные выражения, код шаблонизаторов, любая другая разметка, результаты array/object dump и т. д.
Это действительно разные вещи: маршрут, т.е. "виртуальной адрес" и ссылка на шаблон. Рекомендую изучить доки насчёт добавления своего контроллера в маршруты. Я кодигнитор уже подзабыл. Добавлено спустя 2 минуты 25 секунд: Не успеваю за тобой П.С. сраный автоисправитель в мобилке. Вреда больше чем пользы - приходится исправлять за ним.