Поиск Wordpress - пропущенная косая черта приводит к ошибке 301 - PullRequest
0 голосов
/ 18 апреля 2019

При использовании встроенного поиска Wordpress в качестве пользователя, при поиске в терминах типа "кемпинг" будет получен адрес, в котором перед параметрами отсутствует косая черта.

Пример: https://www.yourdomain.com/blog?s=camping

Поскольку между доменом и поисковым запросом отсутствует косая черта, это приводит к перенаправлению 301 на https://www.yourdomain.com/blog/. (в частности, HEADER отображает 301 с расположением https://www.yourdomain.com/blog/ вместо https://www.yourdomain.com/blog/?s=camping.)

Ввод https://www.yourdomain.com/blog/?s=camping работает должным образом и приводит пользователя к результатам поиска с использованием шаблона search.php.

Вы можете увидеть это в действии в командной строке.

curl -i https://www.yourdomain.com/blog?s=camping
HTTP/1.1 401 Unauthorized
Server: Cowboy
Connection: keep-alive
Date: Thu, 18 Apr 2019 05:34:25 GMT
Content-Type: text/plain
Content-Length: 0
Www-Authenticate: Basic realm=""
Cache-Control: no-cache
X-Request-Id: 2b41e703-10d6-47f3-8656-97ddaaac6e72
X-Runtime: 0.013453
Vary: Accept-Encoding, Origin
Strict-Transport-Security: max-age=15552000; includeSubDomains
Via: 1.1 vegur

curl -i https://www.yourdomain.com/blog/?s=camping
HTTP/1.1 302 Found
Connection: keep-alive
Date: Thu, 18 Apr 2019 05:34:35 GMT
Server: Apache
X-Powered-By: PHP/7.0.31
X-Redirect-By: WordPress
X-Frame-Options: SAMEORIGIN
Location: https://www.yourdomain.com/blog/search/camping
Cache-Control: max-age=172800
Expires: Sat, 20 Apr 2019 05:34:34 GMT
Access-Control-Allow-Origin: *
Content-Length: 0
Content-Type: text/html; charset=UTF-8
Via: 1.1 vegur

Мой файл .htaccess:

<VirtualHost *:*>
    DocumentRoot "/opt/bitnami/apps/wordpress/htdocs"
    SSLProxyEngine On

    ProxyRequests Off
    ProxyPreserveHost On
    ProxyPass /blog https://www.yourdomain.com
    ProxyPassReverse /blog https://www.yourdomain.com
</VirtualHost>

# 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

Среди того, что я пробовал, добавлю это ниже # END WordPress, думая, что я мог бы поймать пропущенную косую черту и добавить ее, которая не работала:

# END WordPress

#Add a trailing slash to query strings
RewriteCond %{QUERY_STRING} ([^/]+)$ [NC]
RewriteRule ^ %{REQUEST_URI}?%1/ [R,L]

Идеи? Другая информация, которую я должен предоставить?

Я пытался создать постоянные ссылки. Я перезапустил Apache через командную строку. Я немного растерялся.

Другая информация:

Это установка Bitnami, в которой активен файл .htaccess, а не htaccess.config, поскольку при обновлении постоянных ссылок в меню «Настройки»> «Постоянные ссылки» выполняется автоматическое обновление файла htaccess.

Страницы и сообщения загружаются без конечного редиректа через косую черту через 301 и правильное расположение в заголовке без проблем.

Я могу опубликовать дополнительную информацию о настройках wp-config для ProxyPass, если они тоже полезны.

...