Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: help with .htaccess

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (2): [1] 2 »   

> Без описания
Bio man
Отправлено: 15 Января, 2013 - 18:53:10
Post Id


Постоянный участник


Покинул форум
Сообщений всего: 2751
Дата рег-ции: Июль 2010  
Откуда: Даугавпилс, Латвия


Помог: 52 раз(а)




Задача проверить наличие файла и отдать другой файл если не существует запрашиваемый.

Например, запрос .../upload/image.png
Если его не существует то нужно вместо него отдать картинку из .../images/no_image.png с именем image.png

(Отредактировано автором: 15 Января, 2013 - 18:53:43)

 
 Top
esterio
Отправлено: 15 Января, 2013 - 19:01:27
Post Id



Активный участник


Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012  
Откуда: Украина, Львов


Помог: 127 раз(а)




Может здесь стоит указать кастомную 404 ошыбку, и в PHP уже обрабативать
(Добавление)
CODE (htaccess):
скопировать код в буфер обмена
  1. ErrorDocument 404 /image.php
 
 Top
Bio man
Отправлено: 15 Января, 2013 - 21:35:33
Post Id


Постоянный участник


Покинул форум
Сообщений всего: 2751
Дата рег-ции: Июль 2010  
Откуда: Даугавпилс, Латвия


Помог: 52 раз(а)




не хочу гонять пхп когда этого не нужно. Полюбому можно через mod rewrite так сделать.
 
 Top
esterio
Отправлено: 15 Января, 2013 - 21:59:26
Post Id



Активный участник


Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012  
Откуда: Украина, Львов


Помог: 127 раз(а)




Ну тогда как вариант
и так mod_rewrite если не найдет файл кинет например на index, вот там и смотрет тот ли адрес
 
 Top
Bio man
Отправлено: 15 Января, 2013 - 22:39:40
Post Id


Постоянный участник


Покинул форум
Сообщений всего: 2751
Дата рег-ции: Июль 2010  
Откуда: Даугавпилс, Латвия


Помог: 52 раз(а)




Что бы пустить запрос через фреймворк нужно создать контроллер который будет этим заниматся.
А мне не нужен контроллер, и вообще статику отдавать с помощью пхп не сильно хороший вариант.
 
 Top
esterio
Отправлено: 15 Января, 2013 - 22:45:07
Post Id



Активный участник


Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012  
Откуда: Украина, Львов


Помог: 127 раз(а)




ну у меня тогда 2 варианта
RedirectMatch - но нужон только те которых нету
еще одно правило в rewrite спроверкой на существования файла - вот тут не помогу, так как сам колотил долго чтоб сделать 2 правила одновременно, уж извините
 
 Top
KingStar
Отправлено: 16 Января, 2013 - 11:33:57
Post Id



Участник


Покинул форум
Сообщений всего: 1889
Дата рег-ции: Авг. 2011  
Откуда: Беларусь


Помог: 69 раз(а)




попробуй так

CODE (htmlphp):
скопировать код в буфер обмена
  1. RewriteCond %{REQUEST_FILENAME} !-f
  2. RewriteRule ^.*$ image/no_image.png [L]


-----
То что программа работает, не означает что она написана правильно!
 
 Top
Bio man
Отправлено: 16 Января, 2013 - 14:37:49
Post Id


Постоянный участник


Покинул форум
Сообщений всего: 2751
Дата рег-ции: Июль 2010  
Откуда: Даугавпилс, Латвия


Помог: 52 раз(а)




Усложним задачу.
Если картинка отсутствует в папке X, например, www/img/X/img.png то отдавать no_imagex.png
Если картинка отсутствует в папке Y, например, www/img/Y/img.png то отдавать no_imagey.png
 
 Top
KingStar
Отправлено: 16 Января, 2013 - 15:45:10
Post Id



Участник


Покинул форум
Сообщений всего: 1889
Дата рег-ции: Авг. 2011  
Откуда: Беларусь


Помог: 69 раз(а)




CODE (htmlphp):
скопировать код в буфер обмена
  1. RewriteCond %{REQUEST_FILENAME} !-f
  2. RewriteRule ^/img/X/.*$ image/no_imagex.png [L]
  3.  
  4. RewriteCond %{REQUEST_FILENAME} !-f
  5. RewriteRule ^/img/Y/.*$ image/no_imagey.png [L]


-----
То что программа работает, не означает что она написана правильно!
 
 Top
Bio man
Отправлено: 17 Января, 2013 - 15:03:18
Post Id


Постоянный участник


Покинул форум
Сообщений всего: 2751
Дата рег-ции: Июль 2010  
Откуда: Даугавпилс, Латвия


Помог: 52 раз(а)




Не работает. в файле уже есть правила
CODE (htmlphp):
скопировать код в буфер обмена
  1. RewriteCond %{REQUEST_FILENAME} !-f
  2. RewriteCond %{REQUEST_FILENAME} !-d
  3. RewriteRule ^(.*)$ index.php?/$1 [L]


И нужно учитывать только статические png файлы а не все.
 
 Top
Bio man
Отправлено: 19 Января, 2013 - 13:13:12
Post Id


Постоянный участник


Покинул форум
Сообщений всего: 2751
Дата рег-ции: Июль 2010  
Откуда: Даугавпилс, Латвия


Помог: 52 раз(а)




Вопрос все еще актуальный
 
 Top
KingStar
Отправлено: 19 Января, 2013 - 13:17:45
Post Id



Участник


Покинул форум
Сообщений всего: 1889
Дата рег-ции: Авг. 2011  
Откуда: Беларусь


Помог: 69 раз(а)




и что что есть, да бы знал - RewriteCond действует до первого RewriteRule
(Добавление)
если нужно отделные расширения, то добавть их в правило

CODE (htmlphp):
скопировать код в буфер обмена
  1. RewriteCond %{REQUEST_FILENAME} !-f
  2. RewriteRule ^/img/X/.*\.png$ image/no_imagex.png [L]
  3.  
  4. RewriteCond %{REQUEST_FILENAME} !-f
  5. RewriteRule ^/img/Y/.*\.png$ image/no_imagey.png [L]
  6.  
  7. RewriteCond %{REQUEST_FILENAME} !-f
  8. RewriteCond %{REQUEST_FILENAME} !-d
  9. RewriteRule ^(.*)$ index.php?/$1 [L]


как-то так


-----
То что программа работает, не означает что она написана правильно!
 
 Top
Bio man
Отправлено: 19 Января, 2013 - 16:28:45
Post Id


Постоянный участник


Покинул форум
Сообщений всего: 2751
Дата рег-ции: Июль 2010  
Откуда: Даугавпилс, Латвия


Помог: 52 раз(а)




Не помогает
Вот файл, где тут ошибка?
CODE (htmlphp):
скопировать код в буфер обмена
  1. <IfModule mod_rewrite.c>
  2.     RewriteEngine On
  3.     RewriteBase /
  4.  
  5.     RewriteCond %{REQUEST_URI} ^system.*
  6.     RewriteRule ^(.*)$ /index.php?/$1 [L]
  7.        
  8.     RewriteCond %{REQUEST_URI} ^application.*
  9.     RewriteRule ^(.*)$ /index.php?/$1 [L]
  10.  
  11.     RewriteCond %{REQUEST_FILENAME} !-f
  12.     RewriteCond %{REQUEST_FILENAME} !-d
  13.     RewriteRule ^(.*)$ index.php?/$1 [L]
  14.        
  15.     RewriteCond %{REQUEST_FILENAME} !-f
  16.     RewriteRule ^/uploaded_files/taxi_logos/.*\.png$ i/no_logo.png [L]
  17.          
  18.     RewriteCond %{REQUEST_FILENAME} !-f
  19.     RewriteRule ^/uploaded_files/taxi_banners/.*\.png$ i/no_banner.png [L]
  20. </IfModule>
  21.  
  22. <IfModule !mod_rewrite.c>
  23.     ErrorDocument 404 /index.php
  24. </IfModule>  

(Добавление)
напоминаю, что правило должно действовать в случае 404
 
 Top
KingStar
Отправлено: 19 Января, 2013 - 16:43:50
Post Id



Участник


Покинул форум
Сообщений всего: 1889
Дата рег-ции: Авг. 2011  
Откуда: Беларусь


Помог: 69 раз(а)




блок

CODE (htmlphp):
скопировать код в буфер обмена
  1. RewriteCond %{REQUEST_FILENAME} !-f
  2.  RewriteCond %{REQUEST_FILENAME} !-d
  3.  RewriteRule ^(.*)$ index.php?/$1 [L]


ставишь после

CODE (htmlphp):
скопировать код в буфер обмена
  1. RewriteCond %{REQUEST_FILENAME} !-f
  2. RewriteRule ^/uploaded_files/taxi_logos/.*\.png$ i/no_logo.png [L]
  3.          
  4. RewriteCond %{REQUEST_FILENAME} !-f
  5. RewriteRule ^/uploaded_files/taxi_banners/.*\.png$ i/no_banner.png [L]

(Добавление)
он у тебя перебивает условия на изображения, под него все попадает


-----
То что программа работает, не означает что она написана правильно!
 
 Top
Bio man
Отправлено: 19 Января, 2013 - 17:16:07
Post Id


Постоянный участник


Покинул форум
Сообщений всего: 2751
Дата рег-ции: Июль 2010  
Откуда: Даугавпилс, Латвия


Помог: 52 раз(а)




KingStar пишет:
он у тебя перебивает условия на изображения, под него все попадает
мне нужно только те которые отсутствуют! возможно ли такое сделать?
 
 Top
Страниц (2): [1] 2 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Apache и другие веб-серверы »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB