2012-07-10 105 views
0

我使用Wordpress 3.4.1打开了固定链接。在我的.htaccess,我有以下代码:集成Wordpress和自定义URL重写

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

我也想建立一个自定义的改写(不是重定向),这样当用户进入到这个网址:

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中可能需要插件或一些自定义代码来解决此问题。我愿意接受任何解决方案。

回答

0

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

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

+0

的ID /弹头部分被浏览器中使用的Java脚本。对于视频部分,我希望使用History.js将状态推送到浏览器,而不是重新加载页面 - 但我希望允许用户按照上面的结构固定到特定的“页面”,并且我正在尝试执行这没有查询字符串或散列。该链接的第一个示例重定向到/ about/video-center /,这不是我想要的。 – Jazzerus 2012-07-10 19:42:27