Я разрабатываю структуру PHP MVC. У меня есть каталог root, в котором перечислены все каталоги проекта. В root есть папка res, куда я помещаю все мои общие таблицы стилей и файлы скриптов, которые будут регулярно использоваться в других проектах. Примерно так:
root
|__res
| |__scripts
| |__styles
|
|__project1
| |__.htacess
|__project2
| |__.htacess
Я ссылаюсь на сценарии из моих проектов, например:
<link rel="stylesheet" type="text/css" href="/../res/styles/my.css"/>
<script src="/../res/scripts/my.js"></script>
У каждого проекта есть конфигурация .htaccess. Моя конфигурация htaccess:
Options -Indexes
#AddHandler application/x-httpd-php53 .php .php5 .php4 .php3
RewriteEngine on
# Rewrite URLs of the form 'x' to the form 'index.php?q=x'.
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteCond %{REQUEST_URI} !\.(?:css|js|jpe?g|gif|png)$ [NC]
RewriteRule ^(.*)$ index.php?url=$1 [L,QSA]
Когда я запускаю свой проект на localhost, он работает отлично, но когда я запускаю его на своем онлайн-сервере, я получаю ошибку 404
http://someurl.server.com/res/styles/my.css
[HTTP/1.1 404 Not Found 101ms]
http://someurl.server.com/res/scripts/my.js
[HTTP/1.1 404 Not Found 101ms]
I заметил, что даже двойные точки, .. / , которые используются для ссылки на родительский каталог из href, также удаляются, чего не происходит на localhost или локальном сервере.
Ранее я при запуске проекта на живом сервере возникала следующая ошибка:
The stylesheet http://someurl.server.com/res/styles/w3.css was not loaded because its MIME type, “text/html”, is not “text/css”
Я удаляю эту ошибку, добавляя следующую строку в файл htaccess:
RewriteCond %{REQUEST_URI} !\.(?:css|js|jpe?g|gif|png)$ [NC]
Я очень новичок в htaccess и потерял . Пожалуйста, помогите.