重定向到子目录

时间:2015-12-12 13:11:11

标签: regex mod-rewrite redirect

我有一个使用WordPress的字典网站。现在是任何术语的网址,例如" myterm"形式为:http://domain.com/myterm。我希望它重定向到http://domain.com/definition/myterm。我不知道如何使用正则表达式进行这种重定向。还存在一些网址,例如domain.com/contact-Us和domain.com/FAQ,我不想重定向到/ definition / Contact-us和/ definition / FAQ。有帮助吗?

2 个答案:

答案 0 :(得分:0)

在htaccess

中尝试以下操作
RedirectMatch ^/myterm$ /definition/myterm

如果myterm是一个dynmic路径,那么你可以使用Regex捕获组来捕获路径值,它将被保存为$ 1以便在目标路径中重用

 RedirectMatch ^/(.*)$ /definition/$1

要从重定向中排除特定路径,可以使用

 RedirectMatch ^/((?!contect-us|FAQ).*)$ /definition/$1

并且否定更多路径,只需将它们添加到由管道foo | bar | foobar分隔的捕获组中。

编辑:

您还需要从重定向中排除目录,以便它无法重定向到自身。

试试这个

 RedirectMatch ^/((?!contect-us|FAQ|defination).*)$ /definition/$1

将“defination”替换为模式和目标中文件夹的名称。

答案 1 :(得分:0)

我的问题已经解决了。我使用了Starkeen提出的重定向。但是,不在.htaccess文件中。我使用了Simple 301 Redirects。它可以正常工作而不会与WordPress规则冲突。