我希望有一种方法可以使用 mod_rewrite 和 Apache 来做到这一点,但也许还有另一种方法可以考虑。
在我的网站上,我为客户的网站重新设计版本设置了目录。如果网络根目录是/home/blah/www
,客户端目录将是/home/blah/www/clients/abc
。当您通过网络浏览器访问客户端目录时,我希望它使用客户端目录中任何请求的文件(如果存在)。否则,我希望它使用网络根目录中的文件。
例如,假设客户不需要自己的index.html
。因此,某些代码将确定不存在index.html
in /home/blah/www/clients/abc
并将使用其中的一个/home/blah/www
。请记住,我不想在任何时候将客户端重定向到 Web 根目录,如果客户端目录未指定其自己的副本,我只想使用具有该名称的 Web 根目录文件。网络浏览器仍应指向/clients/abc
该文件是否存在于此处或根目录中。同样,如果有一个请求news.html
在客户端目录中does存在那里,然后只提供该文件而不是网络根目录的news.html
。用户体验应该是无缝的。
我需要它来处理任何文件名的请求。例如,如果我需要添加一个新行.htaccess
对于我可能想要重定向的每个文件,它反而违背了目的,因为需要太多维护,并且考虑到大量文件,很可能会出现错误。
在您的示例中,请指明您的代码是位于客户端目录中的 .htaccess 文件中,还是位于 Web 根目录中。首选 Web 根。
# If requested resource exists as a file or directory, skip next two rules
RewriteCond %{DOCUMENT_ROOT}/$1 -f [OR]
RewriteCond %{DOCUMENT_ROOT}/$1 -d
RewriteRule (.*) - [S=2]
#
# Requested resource does not exist, do rewrite if it exists in /archive
RewriteCond %{DOCUMENT_ROOT}/archive/$1 -f [OR]
RewriteCond %{DOCUMENT_ROOT}/archive/$1 -d
RewriteRule (.*) /archive/$1 [L]
#
# Else rewrite requests for non-existent resources to /index.php
RewriteRule (.*) /index.php?q=$1 [L]
From 如果文件不存在则重写 http://www.webmasterworld.com/apache/3635920.htm
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)