如何在维护原始URL的同时使用.htaccess进行重定向

时间:2019-04-08 16:13:49

标签: .htaccess mod-rewrite url-redirection url-masking

我试图使用.htacces文件将目录中的任何文件或子文件夹重定向到一个文件,同时仍保持原始URL输入。

因此,如果用户转到:

URLSession.shared.dataTask(with: request) { data, response, error in
  if error != nil {
    DispatchQueue.main.async {
      //Display error message on the UI
      //This never happens
      //Never go back to the main thread
      //Framework stop working
    }
  }
}.resume()

它将重定向到它们:

https://example.com/folder1/folder2/folder3/
or
https://example.com/folder1/folder2/file.php

但原始URL输入不会更改。

2 个答案:

答案 0 :(得分:1)

您可以使用RewriteRule。在文档根目录的htaccess中添加以下规则:

RewriteEngine on
RewriteCond %{REQUEST_URI} !^/folder1/index\.php$ [NC]
RewriteRule ^folder1/.+$ /folder1/index.php [L]

这会将/folder1/foo/bar重定向到/folder1/index.php,而无需在浏览器中更改网址。
上面的RewriteCond确保您不会将/folder1/index.php重写为自身(/folder1/index.php),否则该规则可能会导致无限循环错误。

答案 1 :(得分:0)

您可以进行以下操作:

RedirectMatch 301 ^https://example.com/folder1/ https://example.com/folder1/index.php
  

这使您可以从模式中的第一个URL重定向到   第二个