我有一个复杂的重写场景,我可以使用一些专家的建议。我有一个目录“/directory”,其中包含一些文件。我想将对该目录中不存在的文件的请求重写到另一个也存在的目录,将原始目录保留在 URL 中并为无效路径返回 404。例子
这存在:
/directory/file.php
这不存在:
/directory/subdirectory/anotherfile.php
...但它确实存在于这里:
/another_directory/subdirectory/anotherfile.php
所以我想
/directory/subdirectory/anotherfile.php to refer to /another_directory/subdirectory/anotherfile.php
...但如果文件夹/文件在 /another_directory/ 中不存在,则规则应返回 404。
我尝试了各种组合,但它们要么不返回 404,要么重定向。这是我最近的尝试:
RewriteCond %{DOCUMENT_ROOT}/another_directory/$1 f [OR]
RewriteCond %{DOCUMENT_ROOT}/another_directory/$1 d
RewriteRule (.*) - [S=1]
RewriteRule ^directory/(.*)$ /another_directory/$1 [L, QSA]
如果有助于解释为什么我有这种情况,/another_directory/ 充满了定期重新生成的静态文件,这些文件似乎与 /directory/ 中的现有文件位于同一目录中不想弄乱我的 serps 并希望将大量生成的文件与其他文件隔离开来。