Мод переписать правило с неработающей строкой запроса / WordPress, Apache, Virtualmin - PullRequest
1 голос
/ 11 июня 2019

У меня есть правило перезаписи .htaccess, которое должно быть простым, но не работает.

RewriteRule ^advisors/(.+)/about/ /advisor_master/about/?advisor=$1 [NC,L]

Это должно отобразить URL, например:

/ advisors / stevens-group / about / до / advisor_master / about /? advisor = stevens-group

Однако на странице отображается ошибка 404.

Теперь, если яперейдите по URL / advisor_master / about /? advisor = stevens-group напрямую, он отображается нормально.

Устранение неполадок, которые я уже пробовал:

Если я обновлю правило перезаписи, чтобы оно было без строки запроса в целевом пути, например:

RewriteRule ^advisors/(.+)/about/ /advisor_master/about/ [NC,L]

, оно не отображает ошибку 404, а вместо этого загружает страницу правильно, за исключением случаев, когда данные строки запроса отсутствуют,Конечно, мне нужны эти данные строки запроса, так что это не достаточно хорошо.

Я также попробовал следующее в моем файле WordPress functions.php:

function init_custom_advisor_rewrite() {

        add_rewrite_rule(        
            '^advisors/([^/]+)/about/',        
            'index.php?page_id=1049&advisor=$matches[1]',       
            'top' );
}
add_action( 'init', 'init_custom_advisor_rewrite' );

Я заново сохранилнастройки постоянной ссылки.Это тоже не работает, все равно отображается страница 404.Если я открою URL в браузере напрямую:

/ index.php? Page_id = 1049 & advisor = stevens-group

Это перенаправит на правильный шаблон пользовательской страницы:

/advisor_master / about /? advisor = stevens-group

и работает как надо.Кроме того, если я удаляю строку запроса из функции add_rewrite_rule (), как в моем файле .htaccess, она также работает там.Однако мне нужна эта строка запроса для динамических данных.

Редактировать: Другая идея состояла в том, чтобы посмотреть, работают ли значения строки запроса при непосредственном доступе к файлу сценария, например, /test.php?advisor=stevens-group вне WordPress,Это работает правильно, и строка запроса доступна.Таким образом, это означает, что проблема связана с постоянной связью WP или структурой сопоставления.

Установка выполняется на Apache2 на сервере VirtualMin, работающем под управлением Ubunutu 18.

Вот параметры каталога apache:

Options -Indexes +IncludesNOEXEC +SymLinksIfOwnerMatch +ExecCGI
allow from all
AllowOverride All Options=ExecCGI,Includes,IncludesNOEXEC,Indexes,MultiViews,Sy$
Require all granted
AddType application/x-httpd-php .php

Есть предложения?

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