我正在尝试设置Yii2以使用漂亮的网址。 为了做到这一点,我配置了Yii2并使用了apache的重写模块来确保我们总是通过入口点输入index.php
我在yii-application / frontend / web /文件夹中包含的.htaccess文件中进行了以下修改 - 包含index.php(高级yii2模板)的文件夹。对于这些修改,我按照各种论坛上的说明进行操作。
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php
我还在yii2的配置中进行了以下更改,以便激活漂亮的网址
$config = [
'components' => [
'urlManager' => [
'showScriptName' => false,
'enablePrettyUrl' => true,
'rules' => array(
'<controller:\w+>/<id:\d+>' => '<controller>/view',
'<controller:\w+>/<action:\w+>/<id:\d+>' => '<controller>/<action>',
'<controller:\w+>/<action:\w+>' => '<controller>/<action>',
),
],
],
];
请注意,在进行这些更改之前,Yii2运行良好。
现在,如果我尝试使用以下URL之一进行连接(如修改前),我会看到着陆页。导航无效,我将始终看到着陆页。
http://localhost/frontend/
http://localhost/frontend/index.php
http://localhost/frontend/index.php?r=site/about-us
http://localhost/frontend/index.php?r=site/faq
如果我尝试使用下面的URL进行连接(因为我应该正确配置漂亮的URL),我的浏览器会显示错误消息。
http://localhost/frontend/site/faq
http://localhost/frontend/site/account
http://localhost/frontend/site/index
错误讯息:
Not Found
The requested URL /web/yii-application/frontend/web/index.php was not found on this server.
Apache/2.4.9 (Win32) PHP/5.5.12 Server at localhost Port 80
但是,看起来路径是正确的。 index.php文件实际位于文件夹C:\ web \ yii-application \ frontend \ web \ index.php中 为什么我的浏览器找不到该文件?
感谢您的帮助
答案 0 :(得分:1)
根据您的所有要求,您错过了网络文件夹。
您的所有网址都应该是
http://localhost/frontend/web/
http://localhost/frontend/web/index.php
http://localhost/frontend/web/index.php?r=site/about-us
http://localhost/frontend/web/index.php?r=site/faq
http://localhost/frontend/web/site/faq
http://localhost/frontend/web/site/account
http://localhost/frontend/web/site/index
除非您设置了文件夹重定向,但考虑到如何设置内容,我非常怀疑。