WordPress

permalinks — Jak używać „blogs.dir” jako przesyłania multimediów zamiast katalogu „uploads” w konfiguracji wielostanowiskowej WordPress

  • 14 stycznia, 2023
  • 3 min read
permalinks — Jak używać „blogs.dir” jako przesyłania multimediów zamiast katalogu „uploads” w konfiguracji wielostanowiskowej WordPress


Konfiguracja 1:

Ogólna konfiguracja wielu witryn oparta na subdomenie/domenie niestandardowej dla podrzędnych witryn sieciowych ma taki katalog przesyłania

/home/example1.com/public_html/wp-content/uploads/sites/8/2022/01/logo.png

example1.com : podstawowa wielostanowiskowa sieć WordPress

example2.com : podrzędna witryna sieciowa o identyfikatorze witryny 8 w witrynie example1.com

Dostęp do tego pliku można uzyskać z podrzędnej witryny sieciowej pod następującym adresem URL

poniżej znajduje się ogólny plik .htaccess dla witryny sieciowej opartej na subdomenie


# BEGIN WordPress
RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /
RewriteRule ^index\.php$ - [L]

# add a trailing slash to /wp-admin
RewriteRule ^wp-admin$ wp-admin/ [R=301,L]

RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^(wp-(content|admin|includes).*) $1 [L]
RewriteRule ^(.*\.php)$ $1 [L]
RewriteRule . index.php [L]
# END WordPress

Konfiguracja 2:

W konfiguracji wielostanowiskowej opartej na subdomenie/domenie niestandardowej mam ten katalog przesyłania, używa on blogs.dir zamiast katalogu przesyłania

/home/example1.com/public_html/wp-content/blogs.dir/8/files/2022/01/logo.png

Podrzędna witryna sieciowa ma następującą ścieżkę do pliku

example2.com/files/2022/01/logo.png

.htaccess tej konfiguracji jest tutaj


RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteRule ^(.*/)?files/$ index.php [L]
RewriteCond %{REQUEST_URI} !.*wp-content/plugins.*
RewriteRule ^(.*/)?files/(.*) wp-includes/ms-files.php?file=$2 [L]
# add a trailing slash to /wp-admin
RewriteRule ^wp-admin$ wp-admin/ [R=301,L]
RewriteCond %{REQUEST_FILENAME} -f
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^(wp-(content|admin|includes).*) $1 [L]
RewriteRule ^(.*\.php)$ $1 [L]
RewriteRule . index.php [L]

Próbowałem użyć tego do nowej ogólnej instalacji, w której zamierzoną ścieżką przesyłania jest blogs.dir, ale posiadanie tego .htaccess nic nie daje.

Warto przeczytać!  Jak utworzyć raport konserwacji WordPress dla klientów

Nie ma takiej różnicy w pliku wp-config.php, która mogłaby wpłynąć na tę konfigurację


/* Multisite */
define( 'WP_ALLOW_MULTISITE', true );
define( 'MULTISITE', true );
define( 'SUBDOMAIN_INSTALL', true );

define( 'DOMAIN_CURRENT_SITE', 'www.example1.com' );
define( 'PATH_CURRENT_SITE', " );
define( 'SITE_ID_CURRENT_SITE', 1 );
define( 'BLOG_ID_CURRENT_SITE', 1 );

define('ADMIN_COOKIE_PATH', "); // removed for hide my wp ghost plugin

define('COOKIE_DOMAIN', $_SERVER['HTTP_HOST'] );
define('COOKIEPATH', '');
define('SITECOOKIEPATH', '');

define( 'NOBLOGREDIRECT', '/404' );

Obie konfiguracje zostały wykonane przeze mnie i nie pamiętam żadnych ustawień w desce rozdzielczej, które mogłyby to zmienić. Permalinki sprawdzone; wszystkie możliwe ustawienia w desce rozdzielczej sprawdzone.

Ogólna instalacja na wielu serwerach ujawnia identyfikator witryny w ścieżce nośnika w ten sposób

Celem nie jest ujawnienie identyfikatora witryny w ścieżce mediów
example2.com/files/2022/01/logo.png

Czego mi tu brakuje?


Źródło