IvanShumkov
Новичок
Непонятки в mod_rewrite
Но возникает ошибка, файл index.php за один запрос выполняется 3 раза. Немогу понять почему?
-~{}~ 08.02.05 02:45:
Если последнее правило изменить на
То скрипт будет выполнятся за один запрос один раз, но правило не будет обрабатывать url типа http://mysite/ya.html
-~{}~ 08.02.05 05:41:
Разобрался. Он открывал этим скриптом два файла которые не мог найти.
Правильное решение оказалось:
PHP:
AddType image/x-icon .ico
php_value register_globals 0
php_value display_errors 0
RewriteEngine on
Options +FollowSymlinks
Options -Indexes
#Добавляем слеш в конце, если нет
RewriteCond %{REQUEST_URI} (.*/[^/.]+)($|\?)
RewriteRule .* %1/ [R,L,QSA]
#Запрещаем доступ
<FilesMatch "(config.php)">
Deny from all
</FilesMatch>
RewriteRule (compiled|core|templates|logs|data|modules|cron)/ - [F]
#Если каталог или файл не существует делаем перенаправленеие.
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.+)$ index.php?request=$1 [L]
ErrorDocument 403 [url]http://shumkov/ru/[/url]
-~{}~ 08.02.05 02:45:
Если последнее правило изменить на
PHP:
RewriteRule ^([^.]+)$ index.php?request=$1 [L]
-~{}~ 08.02.05 05:41:
Разобрался. Он открывал этим скриптом два файла которые не мог найти.
Правильное решение оказалось:
PHP:
AddType image/x-icon .ico
php_value register_globals 0
php_value display_errors 1
RewriteEngine on
Options +FollowSymlinks
Options -Indexes
RewriteCond %{REQUEST_URI} (.*/[^/.]+)($|\?)
RewriteRule .* %1/ [R,L,QSA]
<FilesMatch "(config.php)">
Deny from all
</FilesMatch>
RewriteRule (compiled|core|templates|logs|data|modules|cron)/ - [F]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !\.(gif)$|(jpe?g)$|(css)$|(js)$|(png)$|(ico)$|(php)$|(html)$
RewriteRule ^(.*)$ index.php?request=$1 [QSA,L]
ErrorDocument 403 /ru/forbidden/