RewriteCond %{REQUEST_FILENAME} !^.png [nc]
RewriteCond %{REQUEST_FILENAME} !^.css [nc]
RewriteCond %{REQUEST_FILENAME} !^.jpg [nc]
RewriteCond %{REQUEST_FILENAME} !^.js [nc]
RewriteCond %{REQUEST_FILENAME} !^.gif [nc]
RewriteCond %{HTTP_USER_AGENT} "Firefox/2" [or]
RewriteCond %{HTTP_USER_AGENT} "Firefox/1" [or]
RewriteCond %{HTTP_USER_AGENT} "Flock/1" [or]
RewriteCond %{HTTP_USER_AGENT} "Camino/1" [or]
RewriteCond %{HTTP_USER_AGENT} "Opera/9" [or]
RewriteCond %{HTTP_USER_AGENT} "Opera/8" [or]
RewriteCond %{HTTP_USER_AGENT} "Opera/7" [or]
RewriteCond %{HTTP_USER_AGENT} "Opera/6" [or]
RewriteCond %{HTTP_USER_AGENT} "Opera/5" [or]
RewriteCond %{HTTP_USER_AGENT} "Opera/4" [or]
RewriteCond %{HTTP_USER_AGENT} "Opera/3" [or]
RewriteCond %{HTTP_USER_AGENT} "Opera/2" [or]
RewriteCond %{HTTP_USER_AGENT} "Opera/1" [or]
RewriteCond %{HTTP_USER_AGENT} "Safari/4" [or]
RewriteCond %{HTTP_USER_AGENT} "Safari/3" [or]
RewriteCond %{HTTP_USER_AGENT} "Safari/2" [or]
RewriteCond %{HTTP_USER_AGENT} "Safari/1" [or]
RewriteCond %{HTTP_USER_AGENT} "Navigator/" [or]
RewriteCond %{HTTP_USER_AGENT} "MSIE 6" [or]
RewriteCond %{HTTP_USER_AGENT} "MSIE 5" [or]
RewriteCond %{HTTP_USER_AGENT} "MSIE 4" [or]
RewriteCond %{HTTP_USER_AGENT} "MSIE 3" [or]
RewriteCond %{HTTP_USER_AGENT} "MSIE 2" [or]
RewriteCond %{HTTP_USER_AGENT} "MSIE 1"
RewriteRule . upgrade.html [L]
Конечно же работать все это будет только при условии подключеного модуля mod_rewrite.
* заметки о разработке сайтов на PHP/Javascript/MySQL, использовании библиотеки JQuery, работе с социальными движками и базами данных. В целом обо всем, с чем приходится сталкиваться обычному веб-программисту
Ярлыки
ubuntu
(20)
javascript
(7)
php
(7)
jquery
(6)
mysql
(6)
elgg
(5)
video
(5)
NetBeans
(4)
Apache
(3)
IDE
(3)
php5
(3)
программирование
(3)
юмор
(3)
SexyBookmark
(2)
XDebug
(2)
css3
(2)
ftp
(2)
mod-rewrite
(2)
nginx
(2)
plugins
(2)
postgres
(2)
социальные сети
(2)
Datepicker
(1)
Firefox
(1)
Google
(1)
Google Font API
(1)
Google Font Directory
(1)
JDK
(1)
SQL
(1)
SilverStripe
(1)
TrueType fonts
(1)
UI
(1)
add-on
(1)
bash
(1)
blogger.com
(1)
blogspot.com
(1)
bug
(1)
bugs
(1)
chrome
(1)
curl
(1)
curlftps
(1)
database
(1)
filezilla
(1)
global menu
(1)
gmailm google
(1)
htaccess
(1)
mail
(1)
mod
(1)
mount
(1)
mysqldump
(1)
pem-key
(1)
profile
(1)
safari
(1)
sendmail
(1)
sftp
(1)
smtp
(1)
ssh
(1)
trim
(1)
unity
(1)
url
(1)
web 2.0
(1)
widgets
(1)
word-wrap
(1)
валидация
(1)
веб-сервер
(1)
графика
(1)
дизайн
(1)
инъекции
(1)
истории
(1)
метаданные
(1)
музыка
(1)
ошибки
(1)
подсветка кода
(1)
создание плагинов
(1)
старые девайсы
(1)
уязвимости
(1)
фон
(1)
Показаны сообщения с ярлыком mod-rewrite. Показать все сообщения
Показаны сообщения с ярлыком mod-rewrite. Показать все сообщения
5 октября 2012 г.
Как сделать редирект черз .htaccess если браузер IE6
Ярлыки:
Apache,
htaccess,
mod-rewrite
Иногда приходится разрабатывать проекты, работающий с ограниченным количеством браузеров, либо же без потдержки старых версий (IE6 к примеру).
В таких случаях логично организовать редирект на страницу с соответствующим текстом. Сделать это можно как при помощи Javasript-а, так и на стороне PHP. Но как по мне, более элегантным решением будет редирект на стороне веб-сервера Apache, а точнее при помощи фала .htaccess.
Создаем файл .htaccess в корне сайта либо же открываем существующий, и добписываем следующие директивы:
6 августа 2012 г.
Elgg: mod-rewrite для NGINX
Ярлыки:
elgg,
mod-rewrite,
nginx,
ubuntu
Сегодня развернул Elgg на веб-сервере NGINX, и первая проблема с которой столкнулся - это небходимость замены mod-rewrite директив, которые содержатся в файле .htaccess, на соответсвующие правила для NGINX (rewrite-rules).
И первый вопрос, который у меня возник: куда нужно писать эти правила?
Rewrite-rules для Nginx указываются внутри секции server в файле настройки виртуального хоста, например /etc/nginx/sites-available/default.
Следующий вопрос был: что же туда писать?
Если подумать логически, то задача не совсем сложная, необходимо всего лишь конвертировать директивы из htaccess в соответвующие правила для nginx. Спасибо Томасу Делингу, который уже провел иследования в этом вопросе и успешно конвертировал директивы файла htaccess для Elgg 1.8.2. Все что мне осталось, это скопировать набор правил и обновить файл настройки виртуального хостинга, в результате он выглядел приблизительно так:
И первый вопрос, который у меня возник: куда нужно писать эти правила?
Rewrite-rules для Nginx указываются внутри секции server в файле настройки виртуального хоста, например /etc/nginx/sites-available/default.
Следующий вопрос был: что же туда писать?
Если подумать логически, то задача не совсем сложная, необходимо всего лишь конвертировать директивы из htaccess в соответвующие правила для nginx. Спасибо Томасу Делингу, который уже провел иследования в этом вопросе и успешно конвертировал директивы файла htaccess для Elgg 1.8.2. Все что мне осталось, это скопировать набор правил и обновить файл настройки виртуального хостинга, в результате он выглядел приблизительно так:
server {
listen 80;
server_name elgg.domain.com;
root /var/www-nginx/elgg/htdocs/;
error_log /var/log/nginx/error.log;
access_log /var/log/nginx/access.log;
index index.php index.html;
fastcgi_index index.php;
client_max_body_size 8M;
client_body_buffer_size 256K;
rewrite ^/pg\/([A-Za-z0-9\_\-]+)$ /engine/handlers/page_handler.php?handler=$1&$args;
rewrite ^/pg\/([A-Za-z0-9\_\-]+)\/(.*)$ /engine/handlers/page_handler.php?handler=$1&page=$2&$args;
rewrite ^/tag\/(.+)\/?$ /engine/handlers/page_handler.php?handler=search&page=$1;
rewrite ^/action\/([A-Za-z0-9\_\-\/]+)$ /engine/handlers/action_handler.php?action=$1&$args;
rewrite ^/cache\/(.*)$ /engine/handlers/cache_handler.php?request=$1&$args;
rewrite ^/services\/api\/([A-Za-z0-9\_\-]+)\/(.*)$ /engine/handlers/service_handler.php?handler=$1&request=$2&$args;
rewrite ^/export\/([A-Za-z]+)\/([0-9]+)\/?$ /engine/handlers/export_handler.php?view=$1&guid=$2;
rewrite ^/export\/([A-Za-z]+)\/([0-9]+)\/([A-Za-z]+)\/([A-Za-z0-9\_]+)\/$ /engine/handlers/export_handler.php?view=$1&guid=$2&type=$3&idname=$4;
rewrite /xml-rpc.php /engine/handlers/xml-rpc_handler.php;
rewrite /mt/mt-xmlrpc.cgi /engine/handlers/xml-rpc_handler.php;
rewrite ^/rewrite.php$ /install.php;
if (!-d $request_filename){
set $rule_11 1$rule_11;
}
if (!-f $request_filename){
set $rule_11 2$rule_11;
}
if ($rule_11 = "21"){
rewrite ^/([A-Za-z0-9\_\-]+)$ /engine/handlers/page_handler.php?handler=$1;
}
if (!-d $request_filename){
set $rule_12 1$rule_12;
}
if (!-f $request_filename){
set $rule_12 2$rule_12;
}
if ($rule_12 = "21"){
rewrite ^/([A-Za-z0-9\_\-]+)\/(.*)$ /engine/handlers/page_handler.php?handler=$1&page=$2;
}
location ~ \.php$ {
include fastcgi_params;
# Assuming php-fastcgi running on localhost port 9000
fastcgi_pass 127.0.0.1:9000;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_connect_timeout 60;
fastcgi_send_timeout 180;
fastcgi_read_timeout 180;
fastcgi_buffer_size 128k;
fastcgi_buffers 4 256k;
fastcgi_busy_buffers_size 256k;
fastcgi_temp_file_write_size 256k;
fastcgi_intercept_errors on;
}
# Do not put CSS there or it will break simplecache
location ~* \.(bmp|js|gif|ico|jpg|jpeg|png)$ {
expires max;
# log_not_found off;
}
}
Подписаться на:
Сообщения (Atom)