条件URL重写

时间:2018-04-27 13:06:09

标签: apache .htaccess

我需要网址example.com/app来显示example.com/app/dist

中的内容

以下代码就是这样做的。

RewriteEngine On
RewriteRule ^$ /app/dist/ [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !^/dist/
RewriteRule ^(.*)$ /app/dist/$1

但我还需要网址example.com/staging来显示example.com/staging/dist

中的内容

使用当前设置,网址example.com/staging正在显示example.com/app/dist

中的内容

.htaccess while位于/app/staging文件夹中(但必须是同一个文件)

1 个答案:

答案 0 :(得分:2)

在暂存文件夹中的htaccess文件中,将app的所有实例更改为staging

编辑: 您可以尝试使用相对路径而不是硬编码应用程序或暂存,但我过去曾遇到过问题,特别是如果还有其他规则在使用。

RewriteEngine On 

RewriteRule ^dist -  [NC,L] 

RewriteRule ^$ dist/ [L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ dist/$1 [L]

我们的想法是删除前导/重写,以便使用相对路径。所以在技术上它不管htaccess文件在

中的任何文件夹都无关紧要