我在 nginx 服务器上使用yii2.0.3的基本模板,并在web / theme / demo下有一个演示主题。
我已为主题配置了web.php,如下所示。
'components' => [
'view' => [
'theme' => [
'pathMap' => ['@app/views' => 'theme/demo'],
'baseUrl' => 'theme/demo'
]
],
一切正常。我想从主页的网址以及其他网页中删除 web / index.php 。 由于nginx不支持 .htaccess ,我在 web.php 文件
上简单地说明了以下规则'urlManager' => [
'enablePrettyUrl' => true,
'showScriptName' => false,
'enableStrictParsing' => false,
'rules' => [],
],
我没有在' rules '中添加任何内容..所以干净的网址可能无法正常工作。 请帮我从模板的每个页面中删除 / web / 。
答案 0 :(得分:2)
检查Nginx配置中的服务器块如下:
parent
答案 1 :(得分:1)
这是来自nginx网站的官方配置,专用于Yii,所以你知道它是正确的方式(似乎是Yii1,但我们可以为Yii2调整一些元素:
server {
server_name domain.tld;
root /var/www/html;
index index.html index.php;
# BEGIN Yii Specific location configurations
# SEF URLs for sampleapp.
location /{
rewrite ^/(.*)$ /index.php?r=$1;
}
location ~ \.(js|css|png|jpg|jpeg?|gif|swf|ico|pdf|mov|fla|zip|rar)$ {
try_files $uri =404;
}
# END Yii Specific specific location configurations.
# IMPORTANT: THIS SECTION MIGHT BE DIFFERENT DEPENDING ON IF
# YOU USE PHP-FPM, PHP-FASTCGI, ETC
location ~ \.php$ {
root /var/www/html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /usr/share/nginx/html/$fastcgi_script_name;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
include fastcgi_params;
}
}