【发布时间】:2015-01-17 17:48:49
【问题描述】:
在我的 symfony 中,我将 /MySymfonyFolder/web/app.php 移至根目录并将其重命名为 index.php,例如/MySymfonyFolder/index.php,我将 htaccess 更改如下,但是当我写 here 时,它会导致通过 cssrewrite 查找 css 图像出现问题。
1) 我也不想将 /MySymfonyFolder/web/bundles/、/MySymfonyFolder/web/images/ 和 /MySymfonyFolder/web/css 移动到 /MySymfonyFolder/。 2) 我不想将 /app/ 和 /src/ 移到 symfony 根目录之外的上层。
假设我想要一个子文件夹中的所有 /index.php (symfony app.php)、/app/ 和 /src/,htaccess 应该如何识别 /MySymfonyFolder/index.php 和 /MySymfonyFolder/web / 它也可以找到图像?
这是我的错误 .htaccess 导致 css 图像问题。请更正。我搜索了 stackoverflow 并没有发现任何关于此的内容。
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_URI}::$1 ^(/.+)/(.*)::\2$
RewriteRule ^(.*) - [E=BASE:%1]
RewriteCond %{HTTP:Authorization} .
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteRule ^index\.php(/(.*)|$) %{ENV:BASE}/$2 [R=301,L]
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule .? - [L]
RewriteRule .? %{ENV:BASE}/index.php [L]
</IfModule>
<IfModule !mod_rewrite.c>
<IfModule mod_alias.c>
RedirectMatch 302 ^/$ /index.php/
</IfModule>
</IfModule>
【问题讨论】:
-
您正在移动应用程序的入口点和基础 url,因此您可能会弄乱任何相对路径,例如
/bundles/mybundles/css/main.css现在可能需要/web/bundles/mybundles/css/main.css引用。我目前没有方便的 Symfony 来仔细检查它,但看起来你更改了文档根目录,这会破坏相关链接 -
是否可以在 /MySymfonyFolder/ 根目录中使用 htaccess 解决所有问题?
-
您可以将对 /bundles/ 的任何请求重写为 /web/bundles。 symfony 团队以这种方式构建框架是有原因的,如果文档根目录是更高级别的,那么您就会产生安全风险。如果您能解释为什么要这样做,那么我们应该能够提出更好的解决方案
-
你能推荐一个更好的htaccess吗?