1

我想现在在 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
4

1 回答 1

1

试试这个:

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

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

于 2012-12-10T23:50:58.553 回答