1

我有以下系统:

Windows Server '03
IIS 6(射击我)
PHP 5.2.14
Wordpress 3.0.1
WPML 1.8.1.2

我已将 Wordpress 添加到现有的高流量站点,在我们将调用的目录中

http://thehost/wordpress/

对于类似 mod_rewrite 的功能,我使用 Helicon 的 ISAPI_Rewrite 3.1.0.76。我正在使用它来启用 Wordpress 安装中的“漂亮”永久链接。唯一的规则是:

RewriteRule ^/wordpress/(?!index.php)(?!wp)([^.]*)$ /wordpress/index.php/$1 [I,L]

然而,我需要添加另一条规则,我的思考和抨击的双重策略都没有取得成果。

我的网站是一个完全双语的网站。没有不在以下两个子目录之一下的页面:

http://thehost/en/用于英语,以及

http://thehost/sp/西班牙语。

这是我想要维护的约定,即使对于 Wordpress 安装也是如此。我目前有一个有点被破解的 WPML(Wordpress 多语言插件)版本,它的工作原理是所有页面和帖子——不管是什么语言——在 URL 中都包含 /en/ 或 /sp/。这让我相信我非常接近——也许只有一个 RewriteRule!——让我的 Wordpress URL 符合与我网站的其他部分相同的 URL 约定。不过,如上所述,我的问题是我无法让它正常工作。

所以,如果我在我的 Wordpress 安装中的某个地方有这个 URL:

http://thehost/wordpress/en/2010/08/omg-this-post-is-in-english/

我怎样才能将其转换为

http://thehost/en/wordpress/2010/08/omg-this-post-is-in-english/

同时不会丢失 Wordpress 的永久链接?我已经设法将 /en/ 交换到正确的位置(^/en/wordpress/(.*) /wordpress/en/$1),但我无法让这两个规则很好地结合在一起。那是我的问题。好吧,这和其他一些不适合 stackoverflow.com 的内容。

谢谢你的时间。

4

1 回答 1

1

尝试用“C”标志链接规则。例子:

RewriteRule ^/en/wordpress/(.*) /wordpress/en/$1 [C]
RewriteRule ^/wordpress/(?!index.php)(?!wp)([^.]*)$ /wordpress/index.php/$1 [I,L]
于 2010-12-10T09:44:38.630 回答