Apache 2.4和Yii 2:使用不带htaccess的漂亮网址

时间:2015-07-14 12:16:19

标签: mod-rewrite yii2 apache2.4

由于我可以完全访问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>:找不到错误(并且不会重写)。

有什么想法吗?

0 个答案:

没有答案