我的设置是有有虽然不同的内容类似结构的两个或多个站点共享资源。在示例中...
http:// localhost/site1/
http:// localhost/site2/
重写规则旨在为共享资源添加例外。在示例脚本文件夹(和它里面当然一切)被改写所以...
http:// localhost/scripts/
...是...访问
http:// localhost/site1/scripts/
http:// localhost/site2/scripts/
的问题
当试图访问...
http:// localhost/site1/scripts/admin.js
...下面再通过写入当前的规则适用,并试图将其改写为admin目录...
RewriteEngine on
RewriteRule .*/admin(.+) admin$1 [QSA] #Messes with scripts/admin.js
我认为这是一个目录深度的问题,治所在。* /可应用于多个第一目录(SITE1 /),并且固有地(并且不希望地)适用于所有目录深度(例如,深度1 /深度2 /深度3 /等)。
期望的结果
如何调整这个规则,使...
- 管理指数(SITE1 /管理/)此规则caputed。
- 此规则忽略管理JavaScript文件(site1/scripts/admin.js)。
- 我们保留规则(RewriteRule。*/admin)的动态起始位,所以无论使用的目录名称是否会继续自动工作或我们可以修改它以获得相同的效果,但最终的结果是它必须保持动态。
- 我不重命名admin.js,因为它会便宜,因此我不会从中学习。
我已经阅读了这个问题,我不明白你想达到什么目的。请举出一些应该重写的东西(以及它们应该成为的东西)以及不应该被重写的东西。 –
localhost/site1/example.js被重写为localhost/scripts/example.js(正确) – John
localhost/site1/admin.js被post中的规则捕获并抛出一个HTTP 404.我认为是因为。* /可能适用于TWO目录深度而不是只有一个目录深度。我们可以限制规则的目录深度吗? – John