我根据文档
打开了Yii中的漂亮网址http://www.yiiframework.com/doc-2.0/guide-runtime-routing.html
并且主页可见,但是当我尝试转到另一个网址时,它会给我一个错误。
http://localhost:81/xxx/web/shopping/search?q=toaster
在此服务器上找不到请求的URL / xxx / web / shopping / search。
我尝试创建一个通用规则,但它没有帮助。
'urlManager' => [
'enablePrettyUrl' => true,
'showScriptName' => false,
'enableStrictParsing' => false,
'rules' => [
// ...
'<controller:\w+>/<action:\w+>' => '<controller>/<action>',
],
],
文档明确指出不要在路径中包含子文件夹。
注意:具有服务器名称的规则不应在其模式中包含条目脚本的子文件夹。例如,如果应用程序位于http://www.example.com/sandbox/blog下,那么您应该使用模式http://www.example.com/posts而不是http://www.example.com/sandbox/blog/posts。这将允许您的应用程序部署在任何目录下,而无需更改您的应用程序代码。
我必须明确列出每一条路线吗?我试图为
提供明确的路线'shopping/search' => 'shopping/search',
但它没有帮助。
答案 0 :(得分:0)
试试这个
'urlManager' => [
'class' => 'yii\web\UrlManager',
'enablePrettyUrl' => true,
'showScriptName' => 'false'
],
答案 1 :(得分:-1)
这是因为Apache。在没有指向index.php
的情况下,Apache并不知道发送请求的位置,而是发出错误的请求。这将默认为index.php
。
# For pretty URLs
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php
https://komarashettynageshrao.wordpress.com/2010/02/04/pretty-urls-in-yii/