wordpress中URL中的 . 自动转换成 - 的问题,如何解决?

wordpress中在发布产品时 页面地址自定义为 https://www.jy.ms/domain-name/rygod.com 发布后变成了https://www.jy.ms/domain-name/rygod-com

但是 https://www.jy.ms/domain-name/rygod-comhttps://www.jy.ms/domain-name/rygod.com 都可以访问。

也就是说URL中的 . 自动转换成 - 请问如何不让产品页URL中的 . 换成 - 谢谢!

可以尝试使用 WordPress 的插件或手动更改 permalink 结构来避免自动转换 "." 为 "-" 的问题。
有一些插件可以帮助您更改 permalink 结构,如 "Permalink Manager Lite" 和 "Custom Permalinks" 等。可以在 WordPress 插件市场中搜索并安装这些插件,然后按照插件的说明进行设置。
也可以手动更改 permalink 结构来避免这个问题。按照以下步骤:
在 WordPress 后台导航栏中选择“设置”>“固定链接”。
在“自定义结构”选项下,输入希望使用的 permalink 结构,例如:/%category%/%postname%/。
单击“保存更改”按钮。
请注意,更改 permalink 结构后,可能需要更新网站上的所有链接,以便它们指向新的 URL。可以使用插件如 "Better Search Replace" 来批量更新链接。

该回答引用GPTᴼᴾᴱᴺᴬᴵ
WordPress中将URL中的 . 转换成 - 是默认行为,这是因为WordPress将.视为文件扩展名分隔符,并认为URL中不应包含特殊字符。因此,如果您想在URL中使用 .,您可以使用以下方法:

1.使用.htaccess文件进行重写:在WordPress安装目录中的.htaccess文件中添加以下代码:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)\.([^.]+)$ /$1-$2 [L,R=301]

这将重写URL,并将. 替换为 -。

2.使用插件进行重写:您可以使用WordPress插件来更改URL的生成方式。例如,可以使用“Permalink Manager”或“Custom Permalinks”插件来自定义产品URL的生成方式,以便将. 保留在URL中。
请注意,在使用这些方法时,请务必备份您的站点数据并测试以确保不会出现任何问题。

参考GPT和自己的思路,WordPress会自动将URL中的一些特殊字符进行转换,以防止出现一些潜在的问题,其中就包括将URL中的.转换成-。这种情况下,你可以通过以下两种方式解决:

使用插件
你可以使用插件来禁用WordPress中的URL自动转换功能。比如可以使用 No Self Pings 插件来禁用自动链接功能。

修改 permalink 结构
你可以在 WordPress 后台设置中修改 permalink 结构,将默认的结构中的.替换成其他字符。在后台选择「设置 - 永久链接」,然后选择自定义结构,将/%postname%/修改为/%postname%_/或者其他字符,就可以避免WordPress将.自动转换成-。

以下答案基于ChatGPT与GISer Liu编写:

WordPress将URL中的 . 自动转换成 - 是因为将点视为文件扩展名的分隔符,以防止与文件扩展名混淆。如果你想要URL中保留 .,你可以使用以下两种方法中的任一一种来解决这个问题:

方法一:使用插件

你可以使用插件来更改WordPress的URL转换规则,从而允许URL中包含 . 符号。以下是一些插件可以实现这个功能:

  • Allow Dot in Permalinks:这个插件简单易用,只需安装并启用即可。

  • WP Better Permalinks:这个插件提供了更多的自定义选项,包括启用/禁用URL中的 . 转换。

方法二:手动更改WordPress代码

如果你不想使用插件,你也可以手动更改WordPress代码来实现这个功能。具体步骤如下:

① 打开WordPress根目录下的 .htaccess 文件。

② 找到以下代码:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

③ 在这段代码之前添加以下代码:

# Allow Dot in Permalinks
RewriteRule ^(.*)\.(.*)$ /$1-$2 [L]

④ 保存文件并上传到服务器。
这将允许WordPress中的URL保留 . 符号,并将其转换为 - 符号。注意,这种方法可能会影响某些WordPress插件的正常运行,因此你需要仔细测试以确保没有任何问题。

WordPress默认会把URL中的.转换成-,这是为了避免URL中包含.时可能会出现的一些问题。如果你想让产品页URL中的.不转换成-,可以通过修改WordPress的permalink设置来实现