mod_speling Нечувствительные URL-адреса не работают

У меня есть сервер ServerPilot, работающий на Ubuntu 16.04.3

На нем есть приложение, которое является веб-сайтом Wordpress, но имеет другие каталоги, отличные от Wordpress. В этих каталогах меня беспокоит.

Я проверил, что mod_speling действительно включен на сервере ... однако, когда я добавляю

CheckCaseOnly on
CheckSpelling on

в файл .htaccess моих приложений, нечувствительные к регистру URL-адреса по-прежнему разрешаются как Wordpress 404, а не разрешаются.

] К сожалению, сайт находится на этапе тестирования / контроля качества, поэтому я не могу указать фактический URL в качестве примера:

https://www.example.com/university/Smartapp/External/index.html разрешается правильно, потому что в приложении этот путь именно такой, с заглавной S и заглавной E ... однако ... URL https://www.example.com/university/smartapp/external/index .html вызывает страницу Wordpress 404, не найденную

Что я могу сделать, чтобы это заработало?

РЕДАКТИРОВАТЬ Так близко ... Я думаю, что Wordpress обрабатывает первым.

Итак ... Я реализовал следующее:

CheckCaseOnly On
CheckSpelling On

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    RewriteCond %{REQUEST_URI} ^/university/(.*)$ [OR]
    RewriteCond %{REQUEST_URI} ^/events/(.*)$ [OR]
    RewriteCond %{REQUEST_URI} ^/Videos/(.*)$ [OR]
    RewriteCond %{REQUEST_URI} ^/2017-holiday-card/(.*)$ [OR]
    RewriteCond %{REQUEST_URI} ^/Holiday-Card/(.*)$ [OR]
    RewriteRule ^.*$ - [L]
</IfModule>


# BEGIN WordPress
RewriteEngine On

RewriteBase /
RewriteRule ^index\.php$ - [L]

# add a trailing slash to /wp-admin
RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L]
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) $2 [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\.php)$ $2 [L]
RewriteRule . index.php [L]
# END WordPress

И конфигурация nginx по умолчанию ServerPilot для приложения:

location / {
    proxy_pass      $backend_protocol://$backend_host:$backend_port;
}

Я подумал сделать что-то вроде :

location ~* ^/university/ {
    proxy_pass      $backend_protocol://$backend_host:$backend_port;
}

но он тоже, похоже, ничего не делает ...

Что действительно позволяет работать нечувствительным к регистру URL ... однако он действительно нарушает постоянные ссылки Wordpress, как и все внутренние страницы стороны wordpress. 404

ServerPilot processes requests as such: Web Browser -> Nginx -> Apache -> PHP-FPM, please leave the nginx tag on the question since it is relative to it.
0
задан 22 February 2019 в 16:31
1 ответ

В итоге пришлось отказаться от .htaccess для того, чтобы это работало

Какая уловка добавляет:

<DirectoryMatch "(^|/)university($|/)">
    CheckCaseOnly On
    CheckSpelling On
    RewriteEngine On
    RewriteBase /
    RewriteCond %{REQUEST_URI} ^/university/(.*)$ [OR]
    RewriteRule ^.*$ - [L]
</DirectoryMatch>

в конфигурацию vhost для приложения

0
ответ дан 24 November 2019 в 00:51

Теги

Похожие вопросы