Jump to content
  • 0

Проблема с .htaccess


alexandr.coder
 Share

Question

Файл .htaccess:

RewriteEngine on
RewriteCond $1 !^(index\.php|images|robots\.txt)
RewriteRule ^(.*)$ /index.php/$1 [L]

Такая проблема. Я сделал файл .htaccess для переадресации всех запросов на index.php для обработки. Но когда я сделал так, что сценарий должен отображать html страницу с подключенным css файлом стиль не сработал. Для интереса я переместил его в тег style. Стиль сработал, но фоны или другие указанные файлы не загрузились. Я подумал,что файл .htaccess перенаправляет вообще все запросы. Я попытался создать ещё одно правило по примеру, но не получилось. Вот код:

RewriteCond /style/%{REQUEST_FILENAME} -f
RewriteRule (.*) /style/$1 [L]

Незнаю, что не правильно. Помогите.

Link to comment
Share on other sites

17 answers to this question

Recommended Posts

  • 0
Рид зе факинг мануал, блин! Жесть какая-то.

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php [L,QSA]

Не жесть. А просто вы не прочитали целиком. Все запросы, исключая папку style, должны переправлятся на index.php, а этого не происходит.

Link to comment
Share on other sites

  • 0
думаю что ТС нужен редирект мач, хотя и не уверен, так как не понял до конца сей задачи.

Сейчас сервер переадресует все запросы на index.php. Надо сделать исключение для папки style.

Link to comment
Share on other sites

  • 0
Сейчас сервер переадресует все запросы на index.php. Надо сделать исключение для папки style.

хм, видимо как-то так:

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

тут использовался 301 редирект как видите.

Link to comment
Share on other sites

  • 0
хм, видимо как-то так:

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

тут использовался 301 редирект как видите.

Не работает.

Forbidden

You don't have permission to access /S:/home/framework/www/index.php on this server.

Link to comment
Share on other sites

  • 0
alexandr.coder а можете описать для чего такой механизм нужен?

может есть другие пути решения..., я если честно так и не понял зачем этот изврат.

Я делаю что-то типа мини-фреймвока для средних сайтов, где большие навороты не нужны. Сделал основу, теперь хочу сделать на нем блоговый движок. Чтобы обрабатывался запрос нужно все запросы переадресовывать на index.php, где адрес разделяется на контроллер, действие и массив с данными. Но потом натолкнулся на эту проблему.

Был ещё такой вариант без .htaccess. Но все адреса выглядели бы так: http://dev/index.php/controller/action/1/2/3. Но согласитесь, что такие адреса некрасивые. Вот и сделал с .htaccess/

Edited by alexandr.coder
Link to comment
Share on other sites

  • 0

что ж, это понятно, а почему кроме стайл? что в этой папке по мимо стилей?

и еще, а как же вы будете отлавливать гет параметры, если адрес не будет вида: http://dev/index.php/controller/action/1/2/3 ?

Link to comment
Share on other sites

  • 0
что ж, это понятно, а почему кроме стайл? что в этой папке по мимо стилей?

и еще, а как же вы будете отлавливать гет параметры, если адрес не будет вида: http://dev/index.php/controller/action/1/2/3 ?

1.В папке css стиль и изображеия.

2.Адрес (сейчас вида http://dev/controller/action/1/2/3) Разделяется с помощью функции explode(). Первый элемент - контроллер, второй - действие, третий и далее - данные. Так же есть контроллер и действие по умолчанию.

Link to comment
Share on other sites

  • 0
Я делаю что-то типа мини-фреймвока для средних сайтов, где большие навороты не нужны. Сделал основу, теперь хочу сделать на нем блоговый движок. Чтобы обрабатывался запрос нужно все запросы переадресовывать на index.php, где адрес разделяется на контроллер, действие и массив с данными. Но потом натолкнулся на эту проблему.

Был ещё такой вариант без .htaccess. Но все адреса выглядели бы так: http://dev/index.php/controller/action/1/2/3. Но согласитесь, что такие адреса некрасивые. Вот и сделал с .htaccess/

А не рано фреймворки-то делать? В простейших вещах путаетесь.

RewriteEngine on
RewriteRule ^(style/.*)$ $1 [L]
RewriteRule (.*) index.php [L]

Link to comment
Share on other sites

  • 0
Вообще зачем в фреймверках лепят роутинг, когда все элементарно через .htaccess можно сделать...

Можно, не вопрос. Но можно и роутинг. Я оба варианта использую. Чем удобен роутинг? Ну, например, удобно можно вывести все запросы с временем их выполнения в конце вёрстки. Для этого строит всего один раз сделать вывод в конце index.php и на всех страницах сайта это будет видно. Хотя есть и некоторые неудобства. Короче, на мой взгляд, оба варианта приемлемы.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy