Welcome! Log In Create A New Profile

Advanced

Перенаправление в случае присутствия ошибки 404

January 18, 2011 05:47AM
Добрый день, не могу разобраться, как решать следующую задачу.

Есть система в php, Magento. В ней существуют урлы вида
http://mysyte.com/somepath/tovar1.html - физически, html файла нет. внутри продукта происходит обработка через php и выдача контента по этой урле. Теперь возникает ситуация, что контент снят с продаж, и по урле вида http://mysyte.com/somepath/some_page.html выдается сообщение от самой магенто - товара нет, товар не найден, error 404, однако, товар доступен как архивный по урле http://mysite.com/tovar1.html

Можно ли при помощи try_files или rewrite сделать следующее:
if (в ответ получаем 404)
заменить /some_path/tovar1.html на /tovar1.html

Делать это надо именно в случае 404. Физически - файлов вида .*\.html как файлов для проверки в условии if - на самом деле нет! там же происходит обработка через скрипт index.php....

Исходный конфиг
[code]
location ~ .php$ {
root /raid0/www;
fastcgi_pass phpfarm;
fastcgi_index index.php;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
fastcgi_param SCRIPT_FILENAME /raid0/www/$fastcgi_script_name;
include fastcgi_params;

}
location / {
#rewrite ^/.*/(.*)\.html$ http://mysite.com/$1.html break;
root /raid0/www;
fastcgi_pass phpfarm;
fastcgi_param SCRIPT_NAME index.php;
fastcgi_param SCRIPT_FILENAME /raid0/www/index.php;
include fastcgi_params;
#try_files $uri $uri/index.html @deletedproducts;
}
location @deletedproducts {
rewrite ^/.*/(.*)\.html$ http://igigidev.com/$1.html last;
root /raid0/www/igigi.com;
fastcgi_pass phpfarm;
fastcgi_param SCRIPT_NAME index.php;
fastcgi_param SCRIPT_FILENAME /raid0/www/igigi.com/index.php;
include fastcgi_params;
}

[/code]

В коде есть закоментированная строчка с rewrite, при ее открытии абсолютно все запросы на /some_path/some_page.html перебрасываются на /some_page.html... а нужно, чтобы перебрасывались только те, которые дадут 404
если открыть строчку try_files - то результат тот же - реврайту подвергаются все странички. Абсолютно... (((( как оперировать ответом 404 от php-системы? Ибо она в данном случае черный ящик!
Subject Author Posted

Перенаправление в случае присутствия ошибки 404

shortgun January 18, 2011 05:47AM

Re: Перенаправление в случае присутствия ошибки 404

No1 January 18, 2011 10:17AM

Re: Перенаправление в случае присутствия ошибки 404

shortgun January 19, 2011 03:55AM

Re: Перенаправление в случае присутствия ошибки 404

Дмитрий Федюк January 19, 2011 01:54AM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 310
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready