修改 Wordpress 中默认生成的友好 URL(通过 .htaccess)

     2023-02-27     251

关键词:

【中文标题】修改 Wordpress 中默认生成的友好 URL(通过 .htaccess)【英文标题】:Modify friendly URLs generated by default in Wordpress (via .htaccess) 【发布时间】:2013-12-29 18:41:19 【问题描述】:

我有一个在 Wordpress 中完成的网站,我需要对复杂的 URL 进行一些更改。

我从名为detail 的管理面板创建了一个页面,该页面从模板文件夹中读取模板文件detail.php

当前挂载的 URL 是 http://www.domain.com/detail/1234/,我需要它可以作为 http://www.domain.com/anything/1234/ 访问。

以下几行是由 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>

【问题讨论】:

所以你想将/anythinghere/1234重定向到/detail/1234 您是否意识到,如果您这样做,您网站上的所有其他子页面都会损坏? domain.com/anything/1234 到 domain.com/detail/1234?由于所有页面都会重定向?此外,如果您只是想美化您的 URL,那么有很多轻量级/有用的插件可以为您做到这一点。 可以为这个页面制定规则吗?还有其他页面,但没有任何问题 @anubhava 此重定向会产生哪个 url?我该怎么做? 其实这是 WP 页面,我不建议搞乱重写规则,因为 WP 对您在 WP 设置中提供的永久链接结构非常严格。 【参考方案1】:

首先,您应该真正了解这些规则的作用以及您真正想要实现的目标。然后您可以尝试更改系统以满足您的需求。

IfModule 确保仅当存在mod_rewrite Apache 模块时才处理内部的所有内容。所有其他指令都来自这个模块。

    RewriteEngine On 启用 URL 重写。 RewriteBase / 告诉引擎规则在根内部运行。另请参阅how RewriteBase works 上的一般问题。 RewriteRule ^index\.php$ - [L] 表示如果要重写的当前 URL 是 index.php,则不应再处理规则 ([L])。不会发生重写。 RewriteRule 指令接受 regex。另请参阅 SO 上的 regex 标签。 所有RewriteCond 指令都适用于以下RewriteRule。除非添加[OR] 标志,否则必须同时满足它们才能执行规则。在这种情况下,它们的意思是: 请求的资源不是常规文件。 请求的资源不是目录。 将任何(至少一个字符长)URL 重写为index.php。这是要处理的最后一条 ([L]) 规则。

当添加新的RewriteRules 时,您可能希望使用 WordPress 的方式来执行此操作,如Zac’s answer 中所述。通过类比手册中或此处关于 SO 的许多示例找出正确的规则应该不难。

【讨论】:

【参考方案2】:

放入functions.php 可能更好:

functions.php

function setRewriteRule($orgRules)
    return array( '/([^/]+)/([0-9]+)/?' => 'index.php?post=$matches[1]' ) + $orgRules;


add_filter('rewrite_rules_array', 'setRewriteRule');

然后你只需要刷新重写规则,我通常使用'rewrite-rules-inspector'插件。

【讨论】:

如果您使用functions.php,请确保您的主题是子主题,否则它会在主题更新时消失。【参考方案3】:

这应该可以解决您的问题,试一试...您可以编写自己的自定义永久链接而无需添加任何代码,如果有人尝试通过旧 URL 访问该页面,他们将被重定向到新 URL。

WordPress Custom Permalinks

安装后,您只需进入页面并在标题下方输入您自己的网址

【讨论】:

目录中的友好 URL

...】:2015-06-0215:20:34【问题描述】:我在域和目录中安装了Wordpress,我有一个使用PHP+MySQL开发的网站,完全独立于wordpress。它单独工作。本站是后台,所以安装在/backoffice/目录下。后台的一个目录我有另一个目录,我希望它与友好... 查看详情

wordpress 使用 htaccess 更改为带有变量的友好 URL

】wordpress使用htaccess更改为带有变量的友好URL【英文标题】:wordpresschangetofriendlyURLwithvariableusinghtaccess【发布时间】:2013-08-2200:19:42【问题描述】:我有一个带有页面模板和1个变量calluid(userid)的wordpress网站,我想将其更改为友好... 查看详情

wordpress去掉category怎么操作让url更简洁友好

  用wordpress建站是比较流行的,全球将近25%的站点是用wordpress搭建的。有很多的模板、插件可以选择,当然最好还是能自己优化。URL固定链接就是之中一个基础的技巧。有网友问如何去掉url中的category,层级太多不太友好。可... 查看详情

在javascript中使用UTF-8编码生成友好的url [关闭]

】在javascript中使用UTF-8编码生成友好的url[关闭]【英文标题】:GenerateafriendlyurlsusingUTF-8encodinginjavascript[closed]【发布时间】:2015-04-0515:15:24【问题描述】:我正在尝试根据标题制作友好的网址。我找到了很多解决方案,但unicode字... 查看详情

生成用户友好的 URL

】生成用户友好的URL【英文标题】:GeneratingUser-FriendlyURLs【发布时间】:2010-11-0717:20:06【问题描述】:是否有标准方法/C#库将字符串转换为用户友好的uri,以便在RESTfulMVC环境中使用它?***会这样做,例如将“èòà”转换为“eoa... 查看详情

带有 SEO 友好网址的 Wordpress 博客 + Laravel

】带有SEO友好网址的Wordpress博客+Laravel【英文标题】:Wordpressblog+LaravelwithSEOfriendlyurls【发布时间】:2015-08-1305:15:39【问题描述】:我有一个使用Laravel的网站,我正在使用url在网站上创建一个wordpress博客。http://abcd.com/blog我已经在... 查看详情

你能用 ActionLink 生成友好的 URL 吗?

】你能用ActionLink生成友好的URL吗?【英文标题】:CanyouproducefriendlyURLswithanActionLink?【发布时间】:2013-06-0310:45:34【问题描述】:我已经使用ActionLinks创建了一个页面链接-例如:@Html.ActionLink(p.Name,"Details",newURL=p.URL)这会生成一个这... 查看详情

带有可选参数的 Liferay 友好 URL

...:我的URL有一些参数,所以我使用友好的URL来解决Liferays默认生成的丑陋URL。这几个参数有时是空的,这意味着它不需要,但其他时候给我一些我用于查询的ID。示例参数不是null:https://myliferay.com/example-por 查看详情

生成 SEO 友好的 URL(slug)的最成熟的方式/lib 是啥?

】生成SEO友好的URL(slug)的最成熟的方式/lib是啥?【英文标题】:Whatisthemostmatureway/libtogenerateSEOfriendlyURLs(slugs)?生成SEO友好的URL(slug)的最成熟的方式/lib是什么?【发布时间】:2011-03-0522:45:35【问题描述】:我正在寻找最成熟... 查看详情

Rails - 如何将生成的 URL 修复为友好的 URL

】Rails-如何将生成的URL修复为友好的URL【英文标题】:Rails-HowtofixthegeneratedURLtobeafriendlyURL【发布时间】:2011-08-1406:33:39【问题描述】:我的模型看起来像search.rb:ideg:101nameeg:SanFranciscocars.rbidname搜索控制器将用户重定向到汽车。sear... 查看详情

生成 SEO 友好的 URL(slug)[关闭]

】生成SEO友好的URL(slug)[关闭]【英文标题】:GenerateSEOfriendlyURLs(slugs)[closed]【发布时间】:2011-07-1510:06:31【问题描述】:定义来自Wikipedia:slug是URL的一部分,它使用人类可读的关键字。为了方便用户键入URL,通常会使用特殊字... 查看详情

Codeigniter - SEO 友好的 URL 结构(Slug 实现)

...网站,我可以在其中通过slug访问任何网页。例如,就像WordPress和Magento一样,我们可以通过www.sitename.com/cat 查看详情

在 wp_nav_menu Wordpress+Symfony 中更改 URL

】在wp_nav_menuWordpress+Symfony中更改URL【英文标题】:ChangingURL\'sinwp_nav_menuWordpress+Symfony【发布时间】:2018-07-0323:33:35【问题描述】:在我的symfony项目中,我尝试使用wordpress作为免费的用户友好的内容管理器。我的问题是,当我尝... 查看详情

C# Byte[] 到 URL 友好字符串

...我正在为我正在整理的一个简单网站开发一个快速验证码生成器,我希望在页面的url中传递一个加密密钥。我可以很容易地把它作为一个查询字符串参数来做,但我希望不要太容易(只是因为没有其他东西从查询字符串中运行)... 查看详情

带有xampp的Windows上的Wordpress如何更改默认URL

】带有xampp的Windows上的Wordpress如何更改默认URL【英文标题】:WordpressonwindowswithxamppHowtochangedefaultURL【发布时间】:2014-03-2403:43:07【问题描述】:我用xampp和bitnami在Windows7机器上安装wordpress。默认是http://127.0.0.1/wordpress如何将其更... 查看详情

ASP.NET 友好 URL

...。两者都需要对Global.Asax中的Application_BeginRequest过程进行修改,您将在其中运行代码来执行实际的URL映射(我的数据库视图包含所有友好URL及其映射的“真实”URL)。现在的诀窍是让您的请求在没有aspx扩展名的情况下通过.NET引 查看详情

nanoid-轻量、安全的uniqueid生成器

...供ES模块:NanoID有3个API:正常(阻塞)、异步、和不安全。默认情况下,NanoID使用URL友好的符号(A-Za-z0-9_-)并返回一个有21个字符(类似UUIDv4的冲突概率)的ID。使用NanoID最安全、最简单的方法。在极少数情况下,噪声收集时可能... 查看详情

如何通过 pushState 在 Backbone 中使用 SEO 友好的 URL?

...Marionette的单页应用程序,目前使用片段url语法。我正在修改应用程序以用于SEO以利用pushState。虽然这将实现我的部分目标(消除对哈希爆炸的需 查看详情