如何将硬编码的Urls重定向到硬编码的Urls,而不会发生errorAction?

时间:2019-04-26 11:09:42

标签: .htaccess yii2 url-redirection

我有将近一千个链接,当专门针对这些URL发出请求时,我想重定向这些链接。例如

Redirect http://serverAddress/app/2017/06/09/8-20-taraweeh/ http://serverAddress/app/prayer/8-or-20-Rakat-for-Taraweeh

我正在.htaccess文件中尝试此代码,但问题是,当我输入Url时,它没有命中.htaccess代码,而是先命中了Yii应用程序,并检查Url是否存在(如果不存在)(肯定不存在)存在)将我带到错误页面。
现在,我无法定义规则,因为您可以在更改应用程序后看到URL,因此无法定义通用规则。因此,我必须在yii2应用程序中进行硬编码。
问题:
如何在yii2中对网址重定向进行硬编码?

1 个答案:

答案 0 :(得分:0)

您可以定义类似的规则:

'<year:\d+>/<month:\d+>/<day:\d+>/<title>' => 'site/redirect'

然后在SiteController中使用时可以在控制器操作中使用重定向:

public function redirectAction($year, $month, $day, $title) {
    $newUrl = ....  // compute new URL based on the parameters
    return $this->redirect($newUrl, 301);
}