Настройка .htaccess для динамического размещения исключений. php при запуске WordPress. - PullRequest
0 голосов
/ 27 марта 2020

Итак, я работаю за кулисами над установкой Apache / WordPress и интегрирую целевые страницы, которые используют ресурсы, отличные от тех, которые представлены в теме, используемой WordPress. Моя проблема заключается в обходе универсального индекса. php.

Это мои директивы:

# Remove trailing slash & .php Extension
RewriteEngine On
RewriteCond ^filename !-d
RewriteRule ^(.*)/$ /$1 [R=301]
RewriteCond ^filename.php !-f
RewriteRule ^([^\.]+)$ $1.php [NC, L]

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

Я пытаюсь динамически упорядочить мои директивы Apache в способ, который допускает следующее поведение:

  1. Быть исключением из правила всеобщего доступа, требуемого WordPress для правильной работы
  2. Удалите .php из filename в URL
  3. Перенаправить на filename вместо filename.php, если URL-адрес будет введен с конечным знаком sh

Код, как он существует сейчас, почти работает, с какой-то фанкой побочные эффекты.

Первый - № 3; перенаправление с концевых подключений sla sh в .php

Это приводит ко второй проблеме, нарушающей постоянные ссылки в WordPress. https://example.com/newfile/ становится https://example.com/newfile.php - что не так в WordPress.

Я уверен, что правильное сочетание регулярных выражений и директив может это сделать, но я просто не уверен, как сформировать запрос в Google, так что я вас всех спрашиваю. У кого-нибудь есть решение?

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