2
# 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]

RewriteRule ^foo$ /bar [L,R=301]

</IfModule>

# END WordPress

这些行适用于 wordpress,但RewriteRule ^foo$ /bar [L,R=301]在我打开时没有重定向www.example.com/foo

4

2 回答 2

2

RewriteRule 的顺序在 .htaccess 中很重要。将您的 .htaccess 代码更改为:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /

RewriteRule ^foo/?$ /bar [L,R=301]

RewriteRule ^index\.php$ - [L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

</IfModule>
# END WordPress
于 2012-10-15T16:15:20.580 回答
1

您是否尝试过将特定规则放在规则下方RewriteBase /?我认为其他规则已经在做一些事情,导致您的最后一个规则被忽略。

于 2012-10-15T16:13:20.113 回答