Apache-2.2
如果文件夾中不存在文件,如何從根目錄重寫 URI?
我有一個
static
不在我的文件根目錄中的文件夾。我想重定向文件根目錄中不存在但存在於靜態文件夾中的所有文件。(所以如果同一個文件在兩個地方,不在靜態文件中的文件將首先提供。)我該怎麼做?以下不起作用:DocumentRoot /srv/app/client/build/ Alias / /srv/app/client/static RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_URI} !^/ RewriteRule ^(.*)$ /$1 <Location /> Order allow,deny Allow from all </Location>
如果我理解正確,您正在嘗試模擬 Nginx 的功能,在這種
try_files
情況下,它看起來可能對您有用。RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_FILENAME} !-f RewriteRule ^/(.*)$ balancer://app_cluster%{REQUEST_URI} [P,QSA,L]
來自 Apache 文件:Redirecting and Remapping with mod_rewrite部分“在多個目錄中搜尋頁面”,類似於:
# first try to find it in root/... # ...and if found stop and be happy: RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_URI} -f RewriteRule ^(.+) %{DOCUMENT_ROOT}/$1 [L] # second try to find it in static/... # ...and if found stop and be happy: RewriteCond %{DOCUMENT_ROOT}/static/%{REQUEST_URI} -f RewriteRule ^(.+) %{DOCUMENT_ROOT}/static/$1 [L]