我想在 web 文件夹中添加另一个 app_MYNAME.php。 该文件与 app.php 几乎相同。 唯一的区别是这个条目:
$kernel = new AppKernel('MYKERNELNAME', false);
我想用这些方法加载不同的配置文件。
当我在浏览器中输入时:
domain.de/app_MYNAME.php/VALUE
一切都很好。
现在我想隐藏app_MYNAME.php
。结果应如下所示:
domain.de/VALUE
第二步是重定向。当有人在浏览器中输入:
domain.de/MYNAME/VALUE
它应该被重定向到:
domain.de/app_MYNAME.php/VALUE
我只收到 404
或 misconfigured
消息。
最后我需要 3 个 app_MYNAME.php 文件(app_MYNAME1.php、app_MYNAME2.php、app_MYNAME3.php)。
我希望有人能解释一下,在 .htaccess 文件中放入什么内容。
这是我的 .htaccess 文件:
DirectoryIndex app.php
<IfModule mod_negotiation.c>
Options -MultiViews
</IfModule>
<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 ^app\.php(?:/(.*)|$) %{ENV:BASE}/$1 [R=301,L]
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^ - [L]
RewriteRule ^ %{ENV:BASE}/app.php [L]
</IfModule>
<IfModule !mod_rewrite.c>
<IfModule mod_alias.c>
RedirectMatch 302 ^/$ /app.php/
</IfModule>
</IfModule>
最佳答案
尝试在 .htaccess 文件中使用如下所示的配置:
<IfModule mod_rewrite.c>
RewriteEngine On
# ... Your other stuff
# RewriteRule ^(.*)$ /app.php [QSA,L]
RewriteRule ^(.*)$ /app_MYNAME.php [QSA,L]
</IfModule>
此外,请确保您的 nginx/apache 主机文件指向 Symfony 项目的 Web 目录。
关于apache - Symfony .htaccess 为 app_MYNAME.php 添加规则,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38587311/