3

我的htaccess如下:

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteRule ^moreinfo/(.*)$ http://www.kgstiles.com/moreinfo$1 [R=301]
    RewriteRule ^healthsolutions/(.*)$ http://www.kgstiles.com/healthsolutions$1 [R=301]
    RewriteRule ^(.*)\.html$ $1/ [R=301]
    RewriteRule ^(.*)\.htm$ $1/ [R=301]
</IfModule>

我现在使用 wordpress 而不是直接的 html 编码。上面的重写规则用于转发根目录以及 /moreinfo/ 和 /healthsolutions/ 目录中的所有旧 .html 和 .htm 页面。不幸的是,他们还从 wordpress 页面中删除了 .htm 和 .html(我认为它们最初都以 php 结尾)。现在我看到了一些基本功能,比如在 .html 结尾的 wordpress 的可视化编辑器中打开图像编辑器(使用它们会产生 404 错误)。

所以问题是:有没有办法将我的重写规则限制在某些目录中,这样 Wordpress 的功能就不会受到阻碍?

任何帮助表示赞赏!

4

2 回答 2

1

您需要添加一个重写条件,例如:

RewriteCond $1 !^(dontrewrite\.php)

您可以在其中添加 RegEx 表达式以省略某些目录/文件夹/文件类型。

于 2012-12-11T21:14:38.300 回答
1

你可以尝试这样的事情:

重写引擎开启

# assuming wordpress is installed in blog directory
RewriteRule ^blog(/.*|)$ - [L] # don't take any action

RewriteRule ^moreinfo/(.*)$ http://www.kgstiles.com/moreinfo$1 [R=301,L]
RewriteRule ^healthsolutions/(.*)$ http://www.kgstiles.com/healthsolutions$1 [R=301,L]
RewriteRule ^(.*)\.html$ $1/ [R=301,L]
RewriteRule ^(.*)\.htm$ $1/ [R=301,L]

于 2012-12-11T21:14:53.963 回答