Правила перезаписи: добавление псевдонима со статическим содержимым без перезаписи по предыдущим правилам - PullRequest
0 голосов
/ 23 августа 2011

У меня есть правила (ниже), и мы добавили новый псевдоним / msn, который имеет некоторое статическое содержимое, например HTML-файл ayuda.html, который является индексным файлом каталога и некоторыми изображениями.

В настоящее время яможно увидеть файл HTML, но не изображение.Также есть разные ошибки в зависимости от того, если я пойду на domain.com/msn или domain.com/msn/.В первом случае местоположение изображения не перезаписывается на domain.com/msn/image-blah-blah.jpg, а во втором случае.

Это виртуальный каталог:

<VirtualHost *:80>
        ServerAdmin administracion.linux@yellargentina.com
        DocumentRoot "/opt/tomcat-5.5.30/webapps/portalPA"
        ServerAlias *.amarillas.tm.yellargentina.com
        CustomLog /tmp/amarillas-access_log combined
        ErrorLog /tmp/amarillas-error_log
        RewriteLog /tmp/amarillas-rewrite_log
        RewriteLogLevel 9

        JkUnMount       /images/*.gif           w1
        JkUnMount       /images/*.png           w1
        JkUnMount       /images/*.jpg           w1
        JkUnMount       /js/*.js                w1
        JkUnMount       /styles/*.css           w1

        #JkMount        /jkmanager/*            jkstatus
        JkMount         /portalPA               w1
        JkMount         /portalPA/*             w1
        JkUnMount       /msn/*                  w1

        CookieName PaginasAmarillas
        CookieExpires "2 years"
        CookieDomain ".tm.yellargentina.com"
        RewriteEngine on
        RewriteCond %{REQUEST_METHOD} ^(TRACE|TRACK)
        RewriteRule .* - [F]
        Options +FollowSymlinks

        RewriteRule ^/(msn|msn/) /msn/ayuda.html [PT]
        RewriteRule ^/msn/ayuda.html$ /msn/ [R,L]
        RewriteRule ^/msn/(?!ayuda.html)(.*) /msn/$1 [R,L]

        RewriteRule ^/$ /portalPA/index.action   [PT]
        RewriteRule ^/portalPA/index.action / [R]
        RewriteRule ^/(?!portalPA/)(.*) /portalPA/$1 [PT]
</VirtualHost>

Журналы, когда я пытаюсьдля доступа к domain.com/msn/

10.248.19.52 - - [23/Aug/2011:16:54:36 --0300] [amarillas.tm.yellargentina.com/sid#2af084b03cd0][rid#2af084bc8338/initial] (2) init rewrite engine with requested uri /msn/yello-apps-mesenger.jpg
10.248.19.52 - - [23/Aug/2011:16:54:36 --0300] [amarillas.tm.yellargentina.com/sid#2af084b03cd0][rid#2af084bc8338/initial] (3) applying pattern '.*' to uri '/msn/yello-apps-mesenger.jpg'
10.248.19.52 - - [23/Aug/2011:16:54:36 --0300] [amarillas.tm.yellargentina.com/sid#2af084b03cd0][rid#2af084bc8338/initial] (4) RewriteCond: input='GET' pattern='^(TRACE|TRACK)' => not-matched
10.248.19.52 - - [23/Aug/2011:16:54:36 --0300] [amarillas.tm.yellargentina.com/sid#2af084b03cd0][rid#2af084bc8338/initial] (3) applying pattern '^/(msn|msn/)' to uri '/msn/yello-apps-mesenger.jpg'
10.248.19.52 - - [23/Aug/2011:16:54:36 --0300] [amarillas.tm.yellargentina.com/sid#2af084b03cd0][rid#2af084bc8338/initial] (2) rewrite '/msn/yello-apps-mesenger.jpg' -> '/msn/ayuda.html'
10.248.19.52 - - [23/Aug/2011:16:54:36 --0300] [amarillas.tm.yellargentina.com/sid#2af084b03cd0][rid#2af084bc8338/initial] (2) forcing '/msn/ayuda.html' to get passed through to next API URI-to-filename handler

Журналы, когда я пытаюсь получить доступ к domain.com/msn

10.248.19.52 - - [23/Aug/2011:16:55:33 --0300] [amarillas.tm.yellargentina.com/sid#2af084b03cd0][rid#2af084bc02f8/initial] (2) init rewrite engine with requested uri /msn
10.248.19.52 - - [23/Aug/2011:16:55:33 --0300] [amarillas.tm.yellargentina.com/sid#2af084b03cd0][rid#2af084bc02f8/initial] (3) applying pattern '.*' to uri '/msn'
10.248.19.52 - - [23/Aug/2011:16:55:33 --0300] [amarillas.tm.yellargentina.com/sid#2af084b03cd0][rid#2af084bc02f8/initial] (4) RewriteCond: input='GET' pattern='^(TRACE|TRACK)' => not-matched
10.248.19.52 - - [23/Aug/2011:16:55:33 --0300] [amarillas.tm.yellargentina.com/sid#2af084b03cd0][rid#2af084bc02f8/initial] (3) applying pattern '^/(msn|msn/)' to uri '/msn'
10.248.19.52 - - [23/Aug/2011:16:55:33 --0300] [amarillas.tm.yellargentina.com/sid#2af084b03cd0][rid#2af084bc02f8/initial] (2) rewrite '/msn' -> '/msn/ayuda.html'
10.248.19.52 - - [23/Aug/2011:16:55:33 --0300] [amarillas.tm.yellargentina.com/sid#2af084b03cd0][rid#2af084bc02f8/initial] (2) forcing '/msn/ayuda.html' to get passed through to next API URI-to-filename handler
10.248.19.52 - - [23/Aug/2011:16:55:33 --0300] [amarillas.tm.yellargentina.com/sid#2af084b03cd0][rid#2af084bb82b8/initial] (2) init rewrite engine with requested uri /yello-apps-mesenger.jpg
10.248.19.52 - - [23/Aug/2011:16:55:33 --0300] [amarillas.tm.yellargentina.com/sid#2af084b03cd0][rid#2af084bb82b8/initial] (3) applying pattern '.*' to uri '/yello-apps-mesenger.jpg'
10.248.19.52 - - [23/Aug/2011:16:55:33 --0300] [amarillas.tm.yellargentina.com/sid#2af084b03cd0][rid#2af084bb82b8/initial] (4) RewriteCond: input='GET' pattern='^(TRACE|TRACK)' => not-matched
10.248.19.52 - - [23/Aug/2011:16:55:33 --0300] [amarillas.tm.yellargentina.com/sid#2af084b03cd0][rid#2af084bb82b8/initial] (3) applying pattern '^/(msn|msn/)' to uri '/yello-apps-mesenger.jpg'
10.248.19.52 - - [23/Aug/2011:16:55:33 --0300] [amarillas.tm.yellargentina.com/sid#2af084b03cd0][rid#2af084bb82b8/initial] (3) applying pattern '^/msn/ayuda.html$' to uri '/yello-apps-mesenger.jpg'
10.248.19.52 - - [23/Aug/2011:16:55:33 --0300] [amarillas.tm.yellargentina.com/sid#2af084b03cd0][rid#2af084bb82b8/initial] (3) applying pattern '^/msn/(?!ayuda.html)(.*)' to uri '/yello-apps-mesenger.jpg'
10.248.19.52 - - [23/Aug/2011:16:55:33 --0300] [amarillas.tm.yellargentina.com/sid#2af084b03cd0][rid#2af084bb82b8/initial] (3) applying pattern '^/$' to uri '/yello-apps-mesenger.jpg'
10.248.19.52 - - [23/Aug/2011:16:55:33 --0300] [amarillas.tm.yellargentina.com/sid#2af084b03cd0][rid#2af084bb82b8/initial] (3) applying pattern '^/portalPA/index.action' to uri '/yello-apps-mesenger.jpg'
10.248.19.52 - - [23/Aug/2011:16:55:33 --0300] [amarillas.tm.yellargentina.com/sid#2af084b03cd0][rid#2af084bb82b8/initial] (3) applying pattern '^/(?!portalPA/)(.*)' to uri '/yello-apps-mesenger.jpg'
10.248.19.52 - - [23/Aug/2011:16:55:33 --0300] [amarillas.tm.yellargentina.com/sid#2af084b03cd0][rid#2af084bb82b8/initial] (2) rewrite '/yello-apps-mesenger.jpg' -> '/portalPA/yello-apps-mesenger.jpg'
10.248.19.52 - - [23/Aug/2011:16:55:33 --0300] [amarillas.tm.yellargentina.com/sid#2af084b03cd0][rid#2af084bb82b8/initial] (2) forcing '/portalPA/yello-apps-mesenger.jpg' to get passed through to next API URI-to-filename handler

1 Ответ

0 голосов
/ 24 августа 2011

На основании предоставленных журналов перезаписи я пришел к выводу, что yello-apps-mesenger.jpg является проблемным изображением, о котором идет речь. Как я понимаю, вышеупомянутое изображение связано с этой /msn страницы.

Я думаю, все дело в том, как вы написали свой тег <img> (или где вы используете это изображение). Я предполагаю, что он объявлен относительно текущего документа следующим образом: <img src="yello-apps-mesenger.jpg" />.

Ну, вот в чем проблема:

  • когда вы запрашиваете domain.com/msn/, это изображение будет запрашиваться как domain.com/msn/yello-apps-mesenger.jpg
  • но когда вы запрашиваете domain.com/msn (без косой черты), изображение будет запрашиваться, как domain.com/yello-apps-mesenger.jpg и ^/(msn|msn/) просто не будет применено к нему.

ТБХ. Я не знаю, кто из вас поступает неправильно - вы не знаете этого (по крайней мере, я не могу понять это банкоматом).

Я вижу 2 подхода к решению проблемы:

1. Принимайте только domain.com/msn/, а не domain.com/msn (или наоборот) и создавайте свои правила с учетом этого.

2. Исправить URL-адреса изображений - затем сделать их относительно корня сайта, например: <img src="/yello-apps-mesenger.jpg" /> (обратите внимание на косую черту) .. или, возможно, <img src="/msn/yello-apps-mesenger.jpg" /> (/msn/ является частью URL изображения) - вы должны лучше знать, что хорошо для вас.

...