由于我可以完全访问Apache 2.4服务器并关注Apache Foundation recommendations,因此我想让Yii2的漂亮网址无需编写任何htaccess
文件。我特别感兴趣的是:
http://<my_domain>/yii/frontend/web/index.php?=<module>/<controller>/<view><params>
变成:
http://<my_domain>/web/<module>/<controller>/<view><params>
Yii2完美处理动态<params>
的东西,但我们仍然需要Apache来重写路径,所以我写道:
在VirtualHost中:
<Directory />
Options +FollowSymLinks +MultiViews
AllowOverride none
RewriteEngine on
RewriteRule ^yii/frontend/web(/.*)?$ web$1
</Directory>
在/conf-available/yii.conf
中,隐藏index.php
或直接传递文件/目录请求:
<Directory "/yii/frontend/web">
AllowOverride none
Options +FollowSymLinks +MultiViews
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php
</Directory>
结果:
http://<my_domain>/web
:未找到错误。http://<my_domain>/yii/frontend/web
:工作(但不会重写)。http://<my_domain>/yii/frontend/web/<any_valid>
:找不到错误(并且不会重写)。有什么想法吗?