我想使用类似的目录___test
并/___test/subdirectory1/
包含一些内容,但从不在 url 中显示此路径。相反,我希望 url/demo/subdirectory1
或者说,/demo/subdirectory1/images/image.jpg
指向/___test/subdirectory1/images/image.jpg
和浏览器上的 url 保持为:/demo/subdirectory1/images/image.jpg
。实际上替换___test
为demo
我尝试过的各种问题虽然看起来有时有效,但它是:
RewriteRule ^demo/subdirectory1(.*) ___test/subdirectory1/$1
以上仅适用于: demo/subdirectory1
或 demo/subdirectory1/
(使用现有内容示例,其中包含 index.html /___test/subdirectory1/
)但不适用于 demo/subdirectory1/somethingmore...
尽管在这种情况下内容也存在,但不幸的是它在 url 中显示了真实的目录路径。
此外,我使用以下内容通过 404 到从/___test
url 开始的任何内容:
RewriteCond %{THE_REQUEST} ^GET\ /___test/
RewriteRule ^___test/(.*) - [R=404,L,NC]
它可以工作,但是当我添加它时,不幸的是(再次),前一个也变成了 404。但对我来说最重要的是把第一部分做好,即使我从来没有做过第二部分。
任何帮助都非常感谢。谢谢。
编辑 1:我也尝试在/___test/subdirectory1/.htaccess
Options +FollowSymLinks
RewriteEngine On
RewriteBase /___test/subdirectory1
没有成功。
编辑 2:虽然效果不佳,但到目前为止我在 Jon Lin 的帮助下想出的最好的方法如下:
RewriteCond %{REQUEST_URI} ^/demo/subdirectory1(.*)
RewriteCond %{DOCUMENT_ROOT}/___test/subdirectory1/%1 -f [OR]
RewriteCond %{DOCUMENT_ROOT}/___test/subdirectory1/%1 -d
RewriteRule ^ /___test/subdirectory1/%1 [L]
/demo/subdirectory1
<- 好的
/demo/subdirectory1/
<- 好的
/demo/subdirectory1/subdirectory2
<- 暴露真实路径
/demo/subdirectory1/subdirectory2/
<- 好的
/demo/subdirectory1/subdirectory2/subdirectory3
<- 暴露真实路径
/demo/subdirectory1/subdirectory2/subdirectory3/
<- 好的
正如你所看到的,任何比subdirectory1
问题更深层次的东西。我只是不明白为什么。在 linux apache 上的站点根目录中存在的干净 .htaccess 文件上进行测试(没有其他更深的文件)。