需要使一个重写能够与另一个尴尬的,对Mod_rewrite的原则的理解很好地发挥作用

StackOverflow https://stackoverflow.com/questions/3575797

我有以下系统:

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安装中的“漂亮”永久链接。单一规则是:

重写 ^/wordpress/(?index.php)(?wp)([ ^。]*)$/wordpress/index.php/qul $ 1 [i,l

但是,我需要添加另一个规则,并且我的双重策略都没有考虑并通过它来击败它。

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

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

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

即使对于WordPress安装,我旨在维护这项约定。目前,我有一个有些黑客的WPML(WordPress多语言插件)操作的版本,并且它的作品使所有页面和帖子(不含语言)都包括 / en / /或the / sp /在URL中。这使我相信我很接近 - 也许只有一个重写!但是,如所描述的是,我的问题是我无法完全工作。

因此,如果我在WordPress中的某个地方安装了此URL:

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

我该如何将其转换为

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

尽管 不丢失WordPress的固定链接?我已经设法将 / en / /换成其正确位置(^/en/wordpress/(.*)/wordpress/en/$ 1),但我无法获得两个规则可以很好地奏效。那是我的问题。好吧,那和其他一些不适合stackoverflow.com。

谢谢你的时间。

有帮助吗?

解决方案

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

RewriteRule ^/en/wordpress/(.*) /wordpress/en/$1 [C]
RewriteRule ^/wordpress/(?!index.php)(?!wp)([^.]*)$ /wordpress/index.php/$1 [I,L]
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top