自定义结构固定链接防止404

时间:2020-06-19 作者:Someone

我试图找出在permalinks中设置自定义结构前缀对404的影响

我有一个自定义结构:

/news-opinion/%postname%/

如果您尝试转到以下页面,这将正常工作:domain.com/news-opinion/non-existing-url 我会像预期的那样得到404。

但是,如果我使用:domain.com/non-existing-url 这会将用户重定向回主页,而不是404。

我是不是错过了什么我应该解释的东西?

这是一个基于Basick/Composer的安装,如果已知其中任何一个插件会导致此问题,则这是正在使用的插件列表:

"wpackagist-plugin/cache-enabler": "^1.3.4",
"wpackagist-plugin/classic-editor": "1.5",
"wpackagist-plugin/relevanssi": "4.2.0",
"wpackagist-plugin/safe-svg": "1.9.4",
"wpackagist-plugin/wp-mail-smtp": "^1.8",
"wpackagist-plugin/instant-images": "4.2.0",
"wpackagist-plugin/shortpixel-image-optimiser": "4.16.1",
"deliciousbrains-plugin/wp-migrate-db-pro": "^1.9",
"humanmade/s3-uploads": "^2.1",
"custom-repo/advanced-custom-fields-pro": "^5.7.0",
"custom-repo/gravityforms": "^2.4.0",
"wpackagist-plugin/duplicate-post": "3.2.4",
"wpackagist-plugin/filebird": "2.7.1",
"wpackagist-plugin/crop-thumbnails": "1.2.6",
"wpackagist-plugin/redirection": "4.7.1",
"wpackagist-plugin/advanced-cron-manager": "2.3.10",
"wpackagist-plugin/wp-seopress": "3.8.4",
"wpackagist-plugin/cookie-bar": "1.8.7",
"custom-repo/vcaching": "^1.8.0", 
"wpackagist-plugin/wordpress-importer": "0.7",
"wpackagist-plugin/export-media-with-selected-content": "2.0",
"wpackagist-plugin/user-roles-and-capabilities":"^1.2.3",
"wpackagist-plugin/wp-all-export": "1.2.5"
如果我能提供更多与此相关的信息,请让我知道。

这方面的任何帮助都将受到欢迎。

3 个回复
最合适的回答,由SO网友:Someone 整理而成

好吧,在仔细研究了这是什么原因后,这是因为我没有设置:

fastcgi_param PATH_INFO

这是我为sets工作的公司的主机设置的一部分。

我们通过追踪class\\u wp的原因发现了这一点。特别是php文件,我们发现:

if ( empty( $requested_path ) || $requested_file == $self || strpos( $_SERVER[\'PHP_SELF\'], \'wp-admin/\' ) !== false ) {
$self和$\\u服务器[\'PHP\\u self\')将作为索引出现。php,但在托管环境中,这些值与$requested\\u路径匹配。

因此与插件等无关。

SO网友:mozboz

因此,为了确认,在使用该设置的新Wordpress安装上/non-existing-url 肯定返回404,所以不是因为定制的permalink。

可能值得发布您的.htaccess 以防修改。

然而,我怀疑您拥有的一个插件正在有效地添加此功能,我建议暂时禁用重定向和SEOPress,看看是否是它们。一旦你弄清楚它是哪一个,你就可以看到是否有办法在插件中禁用这种特定行为

如果需要,可以很容易地手动添加。要制定的htaccess规则/anything 404,但这会解决一个问题,很可能会破坏其他东西,所以我同意你帖子的观点,如果可能的话,我会找出它在做什么。

编辑:Query Monitor 显示当前页面匹配的URL规则,但是我不知道在有重定向的地方它是否有用。如果您还不知道,那么值得了解,因为它是调试URL重写问题的一个很好的工具。

SO网友:SagarG

当找不到帖子时,WordPress通常会将用户重定向到404页面。

理想情况下,两者都应该重定向到404页:

域。com/news-opinion/non-existing url域。com/不存在的url很奇怪,您会遇到这个问题。您是否介意尝试以下步骤(在每个步骤后检查问题):

将永久链接更改为"Plain"Permalinks Settings Page..htaccess 文件包含默认的WordPress规则。如果没有,请添加它们Twenty-Twenty.如果您在尝试上述步骤后发现问题已得到解决,请逐个激活主题和插件,并恢复到您的自定义永久链接设置。

希望您能找到导致此问题的问题。

相关推荐

Problem with permalinks

我已经更改了类别的基本名称,现在它是“博客”,工作正常。但当我通过/blog/%category%/%postname%/更改结构时。显示404。如果我删除结构中的blog,它会再次工作,但我想使用blog word。问题出在哪里?非常感谢。