【发布时间】:2012-07-10 05:45:00
【问题描述】:
我正在使用 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。
我尝试在 RewriteBase / 行之后将此规则添加到我的 .htaccess 中:
RewriteRule ^about/video-center/(.+)$ /about/video-center/ [NC,L]
什么都不做(我仍然得到 404)。如果我在标志中添加R,那么它会重定向并且 /about/video-center/ 加载得很好,这让我相信规则匹配并正确重写。
我的理论是重写工作正常...但是当 WP 的重写规则生效时,我拥有的任何自定义重写规则都会被覆盖——即使它在内部重写,WP 仍在尝试处理位于地址栏。
我不知道如何解决这个问题并让我的自定义重写与 Wordpress 一起工作。
现在,我意识到单独使用 .htaccess 可能无法实现我想要的结果,并且可能需要一个插件或主题的 functions.php 中的一些自定义代码来解决这个问题。我愿意接受任何解决方案。
【问题讨论】:
标签: wordpress .htaccess mod-rewrite url-rewriting