[mod_​rewrite] Podmiana wadliwego katalogu obrazka

Podczas insta­la­cji wp_​editora po stronie użytkow­ni­ka okaza­ło się, że dwie grafi­ki są źle podlin­ko­wa­ne. O ile sam edytor działa bez zarzu­tu, to problem pojawił się przy użyciu przeglą­dar­ki mediów. Tzw "spinner" i "uploader-icons" wywoły­wa­ne są najwy­raź­niej po relatyw­nej ścież­ce i po insta­la­cji skryp­tu poza katalo­giem wp-admin nastę­pu­je próba odwoła­nia się do nieist­nie­ją­ce­go folde­ru 'wp-admin/wp-inclu­de­s/i­ma­ge­s/'.

Podmiana błędnej ścieżki

Szuka­łem w kodzie czy można to gdzieś zmienić, ale w przypad­ku aktuali­za­cji zmiany przepad­ną. Najle­piej zasto­so­wać mod_​rewrite i plik .htaccess WordPress'a. Błąd dotyczy plików graficz­nych, więc akcję można zawęzić i wykonać tylko dla nich. Gdy warunek zosta­nie spełnio­ny nastą­pi podmia­na ścież­ki dostę­pu na prawidłową.

#Wersja PHP zmieniona: 2020-03-15 03:38:51
AddHandler php7.3-fastcgi php 

## Fix Bad Image Requests
RewriteCond %{REQUEST_FILENAME} !-f
## Add image file types to check against here
RewriteCond %{REQUEST_URI} .(gif|jpe?g|png|bmp|tiff|xcf|psd|ico|svg)$ [NC]
## Specify the file to serve instead
RewriteRule wp-admin/wp-includes/images/(.*) wp-includes/images/$1 [L]

# BEGIN WordPress
# Dyrektywy zawarte między `BEGIN WordPress` oraz `END WordPress`
# są generowane dynamicznie i powinny być modyfikowane tylko za pomocą
# filtrów WordPressa. Zmiany dokonane bezpośrednio tutaj będą nadpisywane.

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

#http://nowy.polskirock.eu/wp-admin/wp-includes/images/uploader-icons.png
</IfModule>

# END WordPress

Plik .htaccess systemu WordPress

Wg tego co napisa­no w liniach 11 – 15, wszyst­ko między BEGIN WordPressEND WordPress zosta­nie nadpi­sa­ne przy aktuali­za­cji. Wstawie­nie czego­kol­wiek po END nie zadzia­ła dzięki instruk­cji z linii 22. Należy się zatem rozgo­ścić na począt­ku. W linii 5 spraw­dza­my czy odwoła­nie nie jest do pliku, a w linii 7 czy plik jest z rodzi­ny graficz­nych. Logicz­nie sprzecz­ne? Nie. Szuka­my odwoła­nia które wywołu­je błąd 404 – brak pliku. Połącze­nie tych dwóch warun­ków daje nam infor­ma­cję, czy mamy do czynie­nia brakiem pliku graficznego.

Omówienie warunków wykonania mod_rewrite

Linia 9 to wykona­nie przepi­sa­nia. W naszym przypad­ku mocno sprecy­zo­wa­ny. Chodzi o konkret­ny błędny katalog i dobrą ścież­kę przekie­ro­wa­nia. RewriteRule wp-admin/wp-includes/images/(.*) wp-includes/images/$1 [L] Wszyst­ko co po 'images/​' jest zapisa­ne do zmien­nej (.*) => $1. Podaje­my dobrą ścież­kę i przypi­su­je­my $1. Po 'images/​' nie musi być od razu nazwa pliku, a kolej­ny podka­ta­log i następ­ny… Całość zosta­nie przepi­sa­na w całości. Tyle. Spraw­dzi­łem i działa, a to najważniejsze 🙂

13 komentarzy do wpisu „[mod_​rewrite] Podmiana wadliwego katalogu obrazka”

  1. My partner and I absolu­te­ly love your blog and find
    nearly all of your post's to be what precisely
    I'm looking for. Do you offer guest writers to write content for
    you perso­nal­ly? I wouldn't mind produ­cing a post or elabo­ra­ting on many of the subjects you
    write about here. Again, aweso­me blog!

    Odpowiedz
  2. Hey there just wanted to give you a quick heads up.
    The text in your post seem to be running off the screen in Chrome.
    I'm not sure if this is a format issue or something to do with inter­net browser
    compa­ti­bi­li­ty but I figured I'd post to let you know.

    The layout look great though! Hope you get the issue resolved soon. Cheers

    Odpowiedz
  3. Greetings! This is my first visit to your blog!
    We are a group of volun­te­ers and starting a new project in a community
    in the same niche. Your blog provi­ded us valuable infor­ma­tion to work on. You have done a extra­or­di­na­ry job!

    Odpowiedz
  4. I just could not depart your web site prior to sugge­sting that I extre­me­ly enjoy­ed the standard info a person provi­de in your guests?
    Is gonna be again steadi­ly to investi­ga­te cross-check new posts

    Odpowiedz

Dodaj komentarz