WordPress搜索-缺少斜杠导致301错误

时间:2019-04-18 05:31:55

标签: wordpress apache .htaccess mod-rewrite trailing-slash

当使用内置的Wordpress搜索作为用户时,搜索“露营”之类的术语将产生一个地址,该地址在参数前缺少尾部斜杠。

例如:https://www.yourdomain.com/blog?s=camping

由于域和搜索查询之间缺少尾部斜杠,因此将导致301重定向到https://www.yourdomain.com/blog/。 (具体来说,HEADER显示的位置为https://www.yourdomain.com/blog/而不是https://www.yourdomain.com/blog/?s=camping的301。)

键入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重定向的页面和帖子的末尾没有斜杠,并且标题中的正确位置没有问题。

如果有帮助,我也可以发布有关ProxyPass的wp-config设置的更多详细信息。

0 个答案:

没有答案