|
|
|
|
|
для: Sfinks
(13.10.2012 в 09:49)
| | Благодарю! очень сильно выручили!!! сервер аж заулыбался когда я костыли убрал!! | |
|
|
|
|
|
|
|
для: s89236470002
(13.10.2012 в 07:57)
| | 1. Всегда указывайте RewriteBase.
2. Внимательнее следите за слешами.
3. Если совсем не понятно, что происходит, можно в контейнере VirtualHost вписать
RewriteEngine On
RewriteLogLevel 9
RewriteLog "logs/rewrite.log"
| и попробовать разобраться.
Короче вот так работает:
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_URI} !^/n_cash
RewriteCond %{DOCUMENT_ROOT}/n_cash/%{HTTP_HOST}%{REQUEST_URI} !-f
RewriteRule ^(.*)$ translator.php [L]
RewriteCond %{DOCUMENT_ROOT}/n_cash/%{HTTP_HOST}%{REQUEST_URI} -f
RewriteRule ^(.*)$ n_cash/%{HTTP_HOST}/$1 [L]
|
| |
|
|
|
|
 490 байт |
|
|
для: Sfinks
(12.10.2012 в 08:12)
| | Неа все равно translator при любом запросе ))
благодарю вас за внимание к данному вопросу!)
может будет минутка посмотрите? (архив прикрепленный)
в архиве содержимое корня сайта 3 файлика... | |
|
|
|
|
|
|
|
для: s89236470002
(10.10.2012 в 00:16)
| | Я почему усомнился - потому что у вас в правиле
RewriteRule ^(.+) /n_cash/%{HTTP_HOST}/$1 [L]
| ссылка для редиректа начинается со /, а это значит "от корня аккаунта", а не "от корня сайта".
Попробуйте так - Если нет файла, то редирект, иначе, если урл не кончается на translator.php, значит файл есть и показать его:
RewriteCond %{DOCUMENT_ROOT}/n_cash/%{HTTP_HOST}/%{REQUEST_URI} !-f
RewriteRule ^(.*)$ translator.php [L]
RewriteCond %{REQUEST_URI} !translator.php$
RewriteRule ^(.*)$ n_cash/%{HTTP_HOST}/$1 [L]
|
| |
|
|
|
|
|
|
|
для: Sfinks
(06.10.2012 в 17:06)
| | Он действительно есть!!! все верно!!!
мне нужен именно файл Z:/home/test1.ru/www/n_cash/test1.ru/images/logo03.jpg !!!!
я же говорю стоит только закомментировать последние 2 строки
## RewriteCond %{DOCUMENT_ROOT}/n_cash/%{HTTP_HOST}/%{REQUEST_URI} !-f
## RewriteRule ^(.*)$ translator.php [L]
файлы из кеша отдаются!!!
Но мне надо чтобы в случае отсутствия файла обращение было именно к пхп скрипту
(если я раскомментирую эти строчки) то не зависимо от урла
-> ВСЕГДА ОБРАЩАЕТСЯ К СКРИПТУ
...так я эту штуку и не поборол (для меня вопрос остался очень актуален)
сейчас временно поставил костыль в виде ErrorDocument 404 /translator.php | |
|
|
|
|
|
|
|
для: s89236470002
(05.10.2012 в 16:11)
| | По-моему вы немного путаете, что такое %{DOCUMENT_ROOT}.
Это корень домена, а не корень вашего аккаунта.
Т.е. при запросе http://test1.ru/images/logo03.jpg
у вас идет редирект на файл Z:/home/test1.ru/www/n_cash/test1.ru/images/logo03.jpg
который также доступен через браузер по адресу http://test1.ru/n_cash/test1.ru/images/logo03.jpg
Он действительно есть или вы хотите попасть в папку выше корня сайта, т.е. в Z:/home/n_cash/test1.ru/ ??? | |
|
|
|
|
|
|
|
для: s89236470002
(05.10.2012 в 16:11)
| | Вопрос так и остался не решенным.. | |
|
|
|
|
|
|
|
для: Sfinks
(05.10.2012 в 15:23)
| | Массив $_SERVER в пхп Скрипте....
[REDIRECT_REDIRECT_STATUS] => 200
[REDIRECT_STATUS] => 200
[HTTP_USER_AGENT] => Opera/9.80 (Windows NT 5.1; U; ru) Presto/2.10.289 Version/12.02
[HTTP_HOST] => test1.ru
[HTTP_ACCEPT] => text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/webp, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1
[HTTP_ACCEPT_LANGUAGE] => ru-RU,ru;q=0.9,en;q=0.8
[HTTP_ACCEPT_ENCODING] => gzip, deflate
[HTTP_COOKIE] => OAID=399eec298d336b06ea787e47364f0af0; __qca=P0-52045653-1349032159986; __csmv=55bf84b5ca02d5fe; datmsid=4719c21c24dd301700524ea9769a128e; __csv=a6d334ab36ab5463|0; __utma=191504943.869423523.1348309568.1349388322.1349391364.5; __utmz=191504943.1348309568.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); __utmv=191504943.|1=ljuser=TODO%3Aloggedin%2Fanonymous%2Fyou=1
[HTTP_CACHE_CONTROL] => no-cache
[HTTP_CONNECTION] => Keep-Alive
[PATH] => \usr\local\ImageMagick;\usr\local\php5;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem
[SystemRoot] => C:\WINDOWS
[COMSPEC] => C:\WINDOWS\system32\cmd.exe
[PATHEXT] => .COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH
[WINDIR] => C:\WINDOWS
[SERVER_SIGNATURE] =>
Apache/2.2.4 (Win32) mod_ssl/2.2.4 OpenSSL/0.9.8k PHP/5.3.3 Server at test1.ru Port 80
[SERVER_SOFTWARE] => Apache/2.2.4 (Win32) mod_ssl/2.2.4 OpenSSL/0.9.8k PHP/5.3.3
[SERVER_NAME] => test1.ru
[SERVER_ADDR] => 127.0.0.1
[SERVER_PORT] => 80
[REMOTE_ADDR] => 127.0.0.1
[DOCUMENT_ROOT] => Z:/home/test1.ru/www
[SERVER_ADMIN] => admin@localhost
[SCRIPT_FILENAME] => Z:/home/test1.ru/www/2.php
[REMOTE_PORT] => 1487
[REDIRECT_URL] => /n_cash/test1.ru/images/logo2p333.jpg
[GATEWAY_INTERFACE] => CGI/1.1
[SERVER_PROTOCOL] => HTTP/1.1
[REQUEST_METHOD] => GET
[QUERY_STRING] =>
[REQUEST_URI] => /images/logo2p333.jpg
[SCRIPT_NAME] => /2.php
[PHP_SELF] => /2.php
[REQUEST_TIME] => 1349437539
[argv] => Array
(
)
----------------------------------------------------------------------------------------------------------------------
причем в [REDIRECT_URL] всегда написана совершенно адекватная вещь !
то есть - указывает как раз туда, куда мне нужно!!!
В браузере - http://test1.ru/images/logo03.jpg
[REDIRECT_URL] => /n_cash/test1.ru/images/logo03.jpg
- ЭТОТ ФАЙЛ ЕСТЬ, НО ОТОБРАЖАЕТСЯ ВСЕ РАВНО ПХП СКРИПТ!
(стоит закомментировать в htacces 2 последних строки - отображается файл!)
В браузере - http://test1.ru/images/12345.jpg
[REDIRECT_URL] => /images/12345.jpg
интересно чисто логически., а почему тут не "2.php" ??? он же так настырно отображается в браузере...
а [REQUEST_URI] у меня всегда как в браузере.....
------------------------------------------------------------------------------------------------
сейчас сделал костыль (отдаю картинки итп файлы PHP скриптом)., работает, но оперативку кушает нещадно. (картинки по 5-7 мегабайт со скрипом лезут через несчастный пхп скрипт.)
REQUEST_FILENAME - не получитс\ мне нужно воссайдать полный путь только в дирректории n_cashe
т.е. файл - /1/2/3/4/5.jpg
кеш должен лежать - /n_cash/хост /1/2/3/4/5.jpg (именно с сохранением структуры директорий)
Короче., я в недоумении ….. | |
|
|
|
|
|
|
|
для: s89236470002
(05.10.2012 в 07:28)
| | Если я не ошибаюсь, то переменная %{REQUEST_URI} содержит модифицированную всеми предыдущими правилами строку запроса. Соответственно у вас ко второму правилу приходит строка %{DOCUMENT_ROOT}/n_cash/%{HTTP_HOST}/%{REQUEST_URI}, которую вы еще раз прилепляете к %{DOCUMENT_ROOT}/n_cash/%{HTTP_HOST}/, и получаете путь к файлу которого нет. Выведите в translator.php массив $_SERVER и посмотрите что у вас куда отправлено. Попробуйте завязать все на переменную %{REQUEST_FILENAME} - она не меняется по ходу выполнения/невыполнения правил и реврайтов. | |
|
|
|
|
|
|
| # ЕСЛИ ФАЙЛ ЕСТЬ В папке кеша ТО ВЫЗЫВАЕМ ЕГО
RewriteCond %{DOCUMENT_ROOT}/n_cash/%{HTTP_HOST}/%{REQUEST_URI} -f
RewriteRule ^(.+) /n_cash/%{HTTP_HOST}/$1 [L]
# если нет кеша все запросы на пхп скрипт отправляем
## RewriteCond %{DOCUMENT_ROOT}/n_cash/%{HTTP_HOST}/%{REQUEST_URI} !-f
## RewriteRule ^(.*)$ translator.php [L]
-------------------------------------------------------------------------------------------------------------
Проблема в том, что все запросы идут на translator.php
коментирую последние 2 строчки, запросы идут на файлы при их наличии...
то есть в адресной строке
я ввожу - http://localhost/1/2/3/1.jpg
сервер возвращает файл - /n_cash/localhost/1/2/3/1.jpg
только в случае закомментированных последних 2х строк
стоит их раскоментировать и АБСОЛЮТНО ВСЕ ЗАПРОСЫ ИДУТ НА скрипт не зависимо от наличия файла в вышеуказанной дирректории...
Мне нужно чтобы в случае отсутствия файла все запросы направлялись на translator.php
что я делаю нетак????? - всю ночь с этой байдой просидел....... /(
Благодарю заранее за помощь! | |
|
|
|
|