mod_rewrite - 需要将此代码与wordpress匹配

时间:2012-12-07 14:02:06

标签: wordpress drupal mod-rewrite

我想在Wordpress中为我的网站从旧的drupal链接中删除?q =

我需要帮助两件事。

首先,如何指定一系列单词而不是数字,如下面的代码段所示?一旦我这样做,这段代码会将“... /?q = postname”重定向为“... / postname”?

RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_URI} ^/([0-9]+)$
RewriteRule .* http://www.mysite.com/?q=%1 [R=301,L]

其次,一旦我有这个代码工作,我如何将它与默认的Wordpress mod_rewrite(下面)集成?

# BEGIN 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>
# END WordPress

1 个答案:

答案 0 :(得分:1)

试试这个:

RewriteCond %{QUERY_STRING} ^q=(\w+)$
RewriteRule .* http://www.mysite.com/%1? [R=301,L]

BTW我会先使用[R = 302,L],直到我确保一切按预期工作。如果您使用301错误的RewriteRule浏览器将缓存重定向,并且任何进一步的RewriteRule更改将要求您重新启动浏览器以查看每个代码更改以查看任何差异。