0

我正在使用打开永久链接的 Wordpress 3.4.1。在我的 .htaccess 中,我有以下代码:

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

我还想设置自定义重写(不是重定向),以便当用户访问此 URL 时:

http://example.com/about/video-center/youtubeID/title-slug/

它在内部被重写为:

http://example.com/about/video-center/

现在,第一个 URL 404s。


我尝试在该行之后将此规则添加到我的 .htaccess 中RewriteBase /

RewriteRule ^about/video-center/(.+)$ /about/video-center/ [NC,L]

什么都不做(我仍然得到 404)。如果我将 a 添加R到标志中,那么它会重定向并且 /about/video-center/ 加载得很好,这使我相信该规则正在匹配并适当地重写。


我的理论是重写工作正常......但是当 WP 的重写规则生效时,我拥有的任何自定义重写规则都会被覆盖——即使它在内部重写,WP 仍在尝试处理地址栏中的 URL。

我不知道如何解决这个问题并使我的自定义重写与 Wordpress 一起工作。

现在,我意识到单独从 .htaccess 可能无法实现我想要的结果,并且可能需要一个插件或我的 Theme 的 functions.php 中的一些自定义代码来解决这个问题。我愿意接受任何解决方案来完成这项工作。

4

2 回答 2

0

看起来很有希望。(来自 WP 的文档)查看那里的第一个示例 - 您可能可以跳过添加查询变量,因为您正在寻找的重写似乎更简单。

但是,ID / url-slug 会发生什么?不再需要该信息?

于 2012-07-10T18:24:39.127 回答
0

花了太多时间试图找到解决方案,我将使用散列代替:

http://example.com/about/video-center/#youtubeID/title-slug/

于 2012-07-10T20:14:04.423 回答