|
|
|
| Добавляю в корневую директорию такой .htaccess:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
</IfModule>
|
Каждый раз при запросе главной страницы, сервер отвечает ошибкой 500.
При этом, если указать хоть один символ в группе паттерна, то всё работает:
RewriteRule ^(a.*)$ index.php/$1 [L]
|
Как это можно объяснить??? | |
|
|
|
|
автор: ..... (25.08.2010 в 10:28) |
|
|
для: bishake
(23.08.2010 в 12:46)
| | >index.php/$1
можно обьяснить несуществованием каталога index.php/
и зацикливанием перенаправлений | |
|
|
|
|
|
|
|
для: .....
(25.08.2010 в 10:28)
| | Эм... вообще-то я уточнил, что данное правило работает:
RewriteRule ^(a.*)$ index.php/$1 [L]
|
| |
|
|
|
|
автор: ..... (26.08.2010 в 00:00) |
|
|
для: bishake
(25.08.2010 в 17:11)
| | index.php/a...... не совпадает с ^(a.*)$ | |
|
|
|
|
|
|
|
для: .....
(26.08.2010 в 00:00)
| | ии? о чём Вы?
Два разных правила:
RewriteRule ^(.*)$ index.php/$1 [L]
|
RewriteRule ^(a.*)$ index.php/$1 [L]
|
При любом запросе в первом случае выдаётся ошибка 500, во втором - всё пучком. | |
|
|
|
|
автор: ..... (28.08.2010 в 02:28) |
|
|
для: bishake
(28.08.2010 в 00:45)
| | об этом
> RewriteCond %{REQUEST_FILENAME} !-f
> RewriteCond %{REQUEST_FILENAME} !-d
> RewriteRule ^(.*)$ index.php/$1 [L]
К. запрашивает путь /absolute_prodigi
--------------------
. выполнив предписания всех вышерасположенных .htaccess
С. проверяет и находит что /home_drive/path/absolute_prodigi не является файлом
[AND] проверяет и находит что /home_drive/path/absolute_prodigi не является каталогом
значит строку "absolute_prodigi" нужно проверить и в случае совпадения перенаправить ход выполнения запроса.
Совпало.
(Этот момент после "Совпало" бывает отличается на разных реализациях mod_rewrite для разных платформ)
Изменило строку превратив в "index.php/absolute_prodigi"
С. Увидел [L]
С. бросил парсить RevriteRules этого .htaccess
С. пререзарядил сам себе запрос, но уже со строкой /index.php/absolute_prodigi
---------------------
. выполнив предписания всех вышерасположенных .htaccess
С. проверяет и находит что /home_drive/path/index.php/absolute_prodigi не является ......
...............
и так далее , до MaxInternalRecursion
(К. - клиент , С. - сервер)
в случае с ^(a.*) RewriteRule не выполнится второй раз
, ^(i.*) не ^(a.*) | |
|
|
|
|
|
|
|
для: .....
(28.08.2010 в 02:28)
| | Спасибо за подробное разъяснение. Скажите, почему тогда правило RewriteRule ^(.*)$ index.php/$1 [L] является общепринятым, например для фреймворка CodeIgniter, и работает на большинстве серверов, и лишь на одном возникла такая проблема? | |
|
|
|