Форсирование косой черты перед запросом URL - PullRequest
0 голосов
/ 25 февраля 2019

Я знаю, что этот вопрос часто поднимается, поэтому я просто позабочусь, чтобы все знали: я уже прочитал и перепробовал многие предложения по переписыванию, но безуспешно.


У меня есть установка WordPress (сервер nginx, виртуальная машина с apache), которая работает просто отлично, но есть проблема с каталогами + запросами в URL.Если в каталоге нет косой черты перед запросом, он не разрешается (возвращается к индексу блога).

Пример:

www.example.com / blog /? = generic_query отлично работает.

www.example.com / blog? = generic_query нет.

К сожалению, тема, которую я установил (X-тема) имеет некоторые меню администратора, которые указывают на страницы без завершающей косой черты в каталоге перед запросом.

Я пытался переписать условия в htaccess, но у меня просто не было никакого успеха.Я читал, что другие говорят, что PHP обычно вообще не заботится об этом, поэтому тот факт, что это вызывает шумиху в этой странной установке nginx, заставляет меня задуматься, не проблема ли это с сервером.

Кто-нибудь имееткакие-либо предложения по этому очень конкретному вопросу?Буду очень признателен, если это так!

Спасибо

-

Редактировать: Поместить сюда мой корневой htaccess файл.

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

# END WordPress

1 Ответ

0 голосов
/ 26 февраля 2019

Поместите это в .htaccess файл:

RewriteEngine On
RewriteCond %{THE_REQUEST} ^[A-Z]{3,7}\s/(.*?)([^\/])\?(.*)\sHTTP.*$
RewriteRule  ^(.*)$    /%1%2/?%3   [L]  

Второй лайм проверит, нет ли в запросе / до ?.

Третья строка добавит его в запросвнутренне.

ОБНОВЛЕНИЕ:

Сохраните свои предыдущие правила и укажите это:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /blog/
RewriteRule ^index\.php$ - [L]
RewriteCond %{THE_REQUEST} /blog(/)?\?(.*)\sHTTP.*$
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /blog/index.php [L]
</IfModule>

# END WordPress
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...