- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试在 Wordpress 位于根目录的共享环境中部署一个基本的 web 应用程序。 Yii2 应用程序位于/subfolder。
我关注 this guide .在 root 的 .htaccess 中,我添加了:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /subfolder
RewriteCond %{REQUEST_URI} ^/subfolder
RewriteCond %{REQUEST_URI} !^/subfolder/web
RewriteRule ^assets/(.*)$ /web/assets/$1 [L]
RewriteRule ^css/(.*)$ /web/css/$1 [L]
RewriteRule ^js/(.*)$ /web/js/$1 [L]
RewriteRule ^images/(.*)$ /web/images/$1 [L]
RewriteRule (.*) /web/$1 [L]
RewriteBase /subfolder
RewriteCond %{REQUEST_URI} ^/subfolder
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /web/index.php
</IfModule>
# BEGIN WordPress
# The directives (lines) between "BEGIN WordPress" and "END WordPress" are
# dynamically generated, and should only be modified via WordPress filters.
# Any changes to the directives between these markers will be overwritten.
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
但是添加了这些规则后,所有 Wordpress 的页面都是通过 Yii 处理(或尝试)的,因此这会破坏博客安装。这是捕获所有页面的第一个规则 block ,但我不明白为什么作为两个
RewriteCond
应该只拦截 Yii 应用 URI。我检查了 mod_rewrite 文档,但不明白出了什么问题。任何帮助表示赞赏。谢谢
最佳答案
RewriteBase /subfolder
RewriteBase
同一
.htaccess
中的指令文件。最后一个实例“获胜”并控制整个文件。所以,在
.htaccess
您发布的文件,
RewriteBase /
在 WordPress 代码块中设置的是文件的实际设置。
RewriteBase
。无论如何都是指令-所以没有
RewriteBase
指令实际上在做任何事情。
RewriteBase
指令仅适用于您在
RewriteRule
中设置了相对路径(不以斜杠开头)的情况。替换字符串。
but I don’t understand why as the two RewriteCond should intercept only the Yii app URIs.
RewriteCond %{REQUEST_URI} ^/subfolder
RewriteCond %{REQUEST_URI} !^/subfolder/web
RewriteRule ^assets/(.*)$ /web/assets/$1 [L]
RewriteCond
您所指的指令......在这种情况下,这两个条件并没有真正做任何事情。
RewriteCond
指令仅适用于第一个
RewriteRule
后面的指令,因此它仅适用于重写您的
assets
的指令.
RewriteRule
正在匹配
/assets
在文档根目录中,而不是
/subfolder/assets
,这大概是要求 - 所以这些规则将无法匹配。
But with these rules added all Wordpress’ pages are handled (or attempted) through Yii, so this breaks the blog installation.
/subfolder
.但是,以下指令无条件地将所有内容重写为
/web
文档根目录中的目录(可能不存在) - 所以这肯定会“破坏”所有 WordPress URL。
RewriteRule (.*) /web/$1 [L]
/web
关闭文档根目录,其中还包含
.htaccess
包含 mod_rewrite 指令的文件?但这似乎不太可能,因为
/web
目录应该在
/subfolder
内目录?
RewriteEngine On
RewriteRule ^(subfolder)/(assets|css|js|images)/(.*) $1/web/$2/$3 [L]
RewriteRule ^(subfolder)/((?!web).*) $1/web/$2 [L]
RewriteRule ^subfolder/web/index\.php - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(subfolder)/. $1/web/index.php [L]
# BEGIN WordPress
:
不需要
<IfModule>
包装。或
RewriteBase
指示。
.htaccess
中。项目根目录中的文件,即。
/subfolder/.htaccess
- 我相信这是链接的“指南”所暗示的。这使两个项目完全分开。并且避免了显式包含
/subfolder
在指令中。
.htaccess
web
中的文件子目录,即
/subfolder/web/.htaccess
.这又是在链接的“指南”中建议的。但是,这也消除了在父
.htaccess
中路由请求的附加指令的需要。文件。
/.htaccess
文档根目录中的文件应该只有 WordPress 指令。进而...
/subfolder/.htaccess
RewriteEngine On
RewriteRule ^((?:assets|css|js|images)/.*) web/$1 [L]
RewriteRule ^((?!web).*) web/$1 [L]
/subfolder/web/.htaccess
RewriteEngine On
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php [L]
同样,不需要
RewriteBase
此处的指令 - 事实上,使用
RewriteBase
这里可以说使事情复杂化。当在
/subfolder/web/.htaccess
文件,所有相对 URL 路径都相对于该目录。
/subfolder/foo
被
/subfolder/.htaccess
内部重写文件到
/subfolder/web/foo
.然后被
/subfolder/web/.htaccess
捕获文件(防止重写循环)并在内部重写为
/subfolder/web/index.php
(假设
foo
不作为物理文件存在)。
关于.htaccess - Yii2 应用程序位于 Wordpress 网站的子目录中 : cannot enable pretty urls,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64823577/
有没有办法为我的一些文件创建一个子目录?这纯粹是为了文件组织。我有大量的小结构/方法,我想将它们放入它们自己的文件和子目录中,但我不想将它们放入它们自己的包中。他们依赖于我项目中的其他功能。每一个都在
我想将目录中的文件和文件夹复制到另一个文件夹中,但不包含包含该文件的子文件夹,例如,对于node_modules目录,我有大量文件,例如100Mb和50K +个文件,不需要复制。 我试过这样使用xco
嘿,我想安装一个论坛(xenforo),我已经得到了所有的 .php 文件,我把文件夹放在/usr/share/nginx/html 页面在哪里(主页 index.html),但是当我做 127.0.
我想在我的 Symfony2 应用程序的子目录中隔离一些 Controller 。 像这样的东西: route: resource: "@MyBundle/Controller/Admin/"
我们有一个由离岸外包开发公司开发的旧应用程序,它仍在使用 Azure 存储客户端 1.7。 因此,我会在此版本停止工作之前对其进行更新。 有一个单元测试我无法通过。 [TestMethod()
我已将 WordPress 安装在子目录中: /public_html/blog/ 我希望能够像这样访问博客: http://example.com/blog 以及类似这样的帖子: http://ex
我正在尝试制作一个程序来将特定文件夹中的文件以及主文件夹的子文件夹中的文件备份到另一个备份文件夹。 这是我试图实现目标的代码的一部分,但是我只备份了主文件夹中的文件,而子文件夹正在被完全复制(其中的所
我无法在 NSTemporaryDirectory 子文件夹中存储任何文件 rootDirectoryName 是 GUIDsubDirectoryName 也是一个 GUID self.rootFo
我最近正在制作一些 Java 软件来查找文件夹中的一些文件/目录,如果它们的名称包含某些文本,它们将被重命名为其他名称。我使用 Files.walkFileTree 遍历目录,如果找到一个匹配的文件/
我一直在互联网深处搜索,试图让 HAProxy 正常运行,但我不确定它能否完成我想要的。 我试着按照这个:https://www.haproxy.com/blog/howto-write-apache
我正在尝试查找其中包含最多文件的目录。我知道我可以使用以下方法找到文件数: find -maxdepth 5 -type f | wc -l 但这只有在我知道要检查哪个目录时才有用。我想找到包含最多文
我正在尝试按如下方式组织我的项目目录 外壳 |inc/[头文件] |obj/[目标文件] |src/[源文件] |生成文件 |可执行 根文件夹中的所有内容都可以正常编译,但我在修改我的 makefil
当我在谷歌上搜索 yahoo、godaddy 等时,它们会显示子目录,如附图所示。但是当我在谷歌上找到我的网站时,它并没有显示那种东西。问题是什么? 最佳答案 有机 SERP 部分的 Google 附
我有一个名为“myproject”的项目,它由 git 进行版本控制。它有一个名为“data”的子目录,该目录已被 gitignored。 我可以为数据目录“git init”并将其作为单独的 git
我有一个目录位置,如何创建所有目录?例如C:\Match\Upload 将同时创建 Match 和子目录 Upload(如果不存在)。 使用 C# 3.0 谢谢 最佳答案 Directory.Crea
如何在 C++ 中删除包含所有文件/子目录的文件夹(递归删除)? 最佳答案 说真的: system("rm -rf /path/to/directory") 也许更多您正在寻找的东西,但特定于 uni
在我正在处理的当前项目中,有人决定将二进制文件作为源树的一部分 checkin 。二进制文件位于源代码下方的目录中: project/src # Here is the loc
我最近知道了 meteor 私有(private)子目录。根据文档:“私有(private)子目录是服务器代码可以访问但不提供给客户端的任何文件的位置,例如私有(private)数据文件。”一般来说,
我的存储库中有多个项目(子目录)。所有项目都只有一个名为main.cpp的可执行文件,并且它们都使用common语句中的#include文件夹中的库。文件夹结构如下所示: root | ├────co
如何在 C# 中搜索这样的路径: "C:\MyApp\*\日志" 我想获取与该搜索模式匹配的所有目录。 示例结果: C:\MyApp\20171009\日志 C:\MyApp\20171008\日志
我是一名优秀的程序员,十分优秀!