我的设置如下:
- 我使用 Wordpress 希伯来语版本创建了一个希伯来语 WordPress 网站。
- 我添加了来自 themeforest 的主题,该主题没有 WooCommerce,但支持它。该主题支持 RTL,我需要它。
- 该站点位于子目录中,因为它仍在测试中,旧站点是支持 PHP 和 MySQL 的 Windows 服务器上的 asp.net。
我的问题是我的产品链接中包含希伯来语单词,如下所示:
http://sitename.co.il/wp/index.php/מוצר/test-mil/
。此 URL 会导致 404 错误,但如果我使用此 URL:
http://sitename.co.il/wp/index.php/product/test-mil/
我可以进入页面。
所有其他链接都正常工作。
我尝试过的:
- 我查看后发现更改永久链接会有所帮助。我尝试过,但它添加了一个额外的
"/"
,导致出现问题 - 当我更改永久链接时,URL 如下所示:http://sitename.co.il/wp/index.php//product/test-mil/
(注意双//
) - 我编辑了 WooCommerce 的 PO 文件,并将 slug 从希伯来语更改为英语,但这没有帮助。
这可能是服务器问题吗?
如果是这样,并且如果我迁移到 Linux 服务器,我可以使用 301 重定向从 asp.net 页面到新页面吗?
最佳答案
看来您正在 Windows 上使用 IIS 7。非 ASCII slug 出现 404 问题是 IIS 7 的一个已知服务器问题。
在某些情况下,可以通过在 wp-config.php 中的 WP_DEBUG 常量定义之后添加以下代码来解决该问题:
if (isset($_SERVER['UNENCODED_URL'])) {
$_SERVER['REQUEST_URI'] = $_SERVER['UNENCODED_URL'];
}
您的另一个选择是迁移到 Apache 服务器,这些 URL 都得到正确支持。在这种情况下,您将能够非常轻松地创建必要的 301 重定向。
关于wordpress - 带有希伯来语单词的 WooCommerce URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25487444/