例如,我正在foo
访问项目https://localhost/projects/foo/dev/
。
我想重写网址,以便{Document}文件夹中https://localhost/projects/foo/
指向projects/foo/dev/
这应该不是HTTP 3xx重定向。此外,dev1
,dev2
等不应该是可访问的(除非dev
内有projects/foo/dev/assets/js/jquery.min.js -> https://localhost/projects/foo/assets/js/jquery.min.js
目录,但这些名称不太可能。“当然,路径的其余部分以及查询字符串和片段都需要保留,例如:
error.log
这是我在DocumentRoot文件夹中的目录结构:
我已尝试在this question中发布的答案,但即使重新启动Apache也无法生效。
我也试过这个似乎是正确的但是在RewriteEngine on
RewriteRule ^(.*)$ src/$1 [L,QSA]
中给了我带有无限重定向错误的HTTP 500:
foo
我只能访问每个项目目录(例如bar
和projects
),并且父目录在其他计算机上可能不会被称为path
。因此,这需要在htaccess文件中完成,而不是httpd.conf。
答案 0 :(得分:0)
您可以在projects/.htaccess
:
RewriteEngine on
RewriteCond $2 !^dev/ [NC]
RewriteRule ^(foo|bar)/(.*)$ $1/dev/$2 [NC,L]
或projects/
中的每个目录(不仅是foo
和bar
):
RewriteEngine on
RewriteCond $2 !^dev/ [NC]
RewriteRule ^([^/]+)/(.*)$ $1/dev/$2 [L]