目前,我有一个标准安装的WordPress 3.0,而.htaccess文件看起来是这样的:Wordpress,.htaccess和mod_rewrite:如何添加重定向规则?
<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,这样我可以提供一些自动生成的页面,但内保持WordPress的主题。例如,前往/event/123/
应从我的数据库中提取事件#123的详细信息,而不在Wordpress中存在页面。
我想我可以在WordPress的创建一个“一般事件”页面,并把它带一个参数,如(例如/event/generic/
):
RewriteRule ^event/(\d+)/$ /event/generic/?q=$1 [L]
然而,这似乎并没有工作,它只需要我到Wordpress 404页面。我在想,我可能会在这里问很多WordPress,但肯定有可能吗?
我想到的唯一的其他解决方案是在主题内部破解404.php。
更新
我.htaccess
看起来是这样的:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase/
RewriteRule ^eventtest/(\w+)/$ /events/event-single/ [L]
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
如果我当时去/eventtest/testing/
,则:存在于WordPress的
$_SERVER['REQUEST_URI'] is /eventtest/testing/
$_SERVER['REDIRECT_URL'] is /events/event-single/
的/events/event-single/
页,但如果我去/eventtest/testing/
,我得到一个404页面。
+1,这就是为什么WordPress重写规则已被简化。 – 2010-08-11 10:27:22