使用WordPress中的参数重写特定URL

时间:2016-07-22 作者:Borniet

我正在重写一个最初在Drupal中的网站,它有非常特定的URL。因此,我需要将所有原始URL重写到wordpress系统+我自己编写的插件的参数:

我需要从中获得:

http://www.domain.com/param1/param2/param3/param4/param5/detail
对此:

http://www.domain.com/index.php/detail/?param=param5
如果url的最后一部分

我尝试过这个(以及它的许多变体):

RewriteRule ^/([^/]*)/([^/]*)/([^/]*)/([^/]*)/([^/]*)/([^/]*)/([detail_]+.*)/?  \\
  /wp1/index.php/detail/?gref=$5    [PT]
放置在中的Wordpress代码前面。htaccess,但我得到的只是我的Wordpress 404页面。

感谢您的帮助!!!!!

编辑:

满的添加了htaccess:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /wp1/
RewriteRule ^/([^/]*)/([^/]*)/([^/]*)/([^/]*)/([^/]*)/([detail_]+.*)/?  \\
/index.php/detail/?gref=$5    [PT]

RewriteRule ^index\\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /wp1/index.php [L]
</IfModule>
# END WordPress

1 个回复
最合适的回答,由SO网友:Andy Macaulay-Brook 整理而成

根据评论中的信息,这里是我的初步答案,希望有助于调试问题,而不是修复问题,因为我看不到足够的信息,这不是OP的错,重写调试只是一种痛苦。

重写规则显然是在向WP传递一些东西,但WP对此并不满意。

我要做的是在主题的404中添加一些调试代码。php,它可以显示调用的URL以及WP无法解析的URL。这至少可以让您看到重写规则是否达到了预期效果。

但还有两点:

1-如果您不将自己的htaccess代码移到WP的开始和结束之外,那么如果您的站点执行重写的硬保存,您的更改将被覆盖。

2-将WP中旧URL结构的重写规则编码为插件,而不是在htaccess中重写,这可能被视为更好的做法。