重写子目录以显示为另一个目录

时间:2017-07-17 05:09:41

标签: apache .htaccess mod-rewrite

我在https://www.example.com/some/subdirectory/folder/中有一个包含应用的文件夹。我希望访问者只需https://www.example.com/app/即可访问此内容。基本上运行/ some /子目录/文件夹/中的所有文件,就好像它们位于/ app /(虚拟文件夹)中一样。

我尝试了几种mod_rewrite变体,但似乎无法正确使用。

任何帮助都将不胜感激。

由于

1 个答案:

答案 0 :(得分:1)

假设您需要访问文件夹的内容

/subdir/subsubdir
虚拟文件夹下的

/app

这可以通过放在应用程序的webroot中的以下.htaccess文件来完成:

RewriteEngine On

RewriteCond "%{ENV:REDIRECT_rewritten}" "!=1" 
RewriteRule ^/?subdir/subsubdir/(.*)$ /app/$1 [R=301,QSA,L]

RewriteRule ^/?app/(.*)$ /subdir/subsubdir/$1 [QSA,L,E=rewritten:1]

在这里您可以找到有关url- / folder-mapping的更多信息,以及有关mod_rewrite的快速概述:

https://mod-rewrite-cheatsheet.com/#url-mapping