我在根文件夹中创建了一个.htaccess
文件,其中包含以下代码:
-RewriteEngine On
Add a comment to this line
-RewriteCond %{REQUEST_URI} !^/web
-RewriteRule ^/?([^/]+)$ /web/$1 [L]
但它没有按预期工作。我在web文件夹中也有一个.htaccess
文件,其中包含以下代码:
RewriteEngine on
# If a directory or a file exists, use it directly
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# Otherwise forward it to index.php
RewriteRule . index.php
我做错了什么,这里?
答案 0 :(得分:2)
加入.htaccess
:
RewriteRule . /web/index.php
或
RewriteRule . /basic/web/index.php
EDIT。
我找到更好的解决方案放入.htaccess
:
RewriteEngine on
RewriteCond %{HTTP_HOST} ^domain.com$ [NC,OR]
RewriteCond %{HTTP_HOST} ^www.domain.com$
RewriteCond %{REQUEST_URI} !web/
RewriteRule (.*) /web/$1 [L]
将domain.com
更改为您的域名。
答案 1 :(得分:1)
应该更改AppAsset public $ css路径
答案 2 :(得分:0)
在网络文件夹之外添加 .htaccess
AddDefaultCharset UTF-8
Options +FollowSymLinks
IndexIgnore */*
RewriteEngine on
# if a directory or a file exists, use it directly
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# otherwise forward it to index.php
RewriteRule . index.php
在 config / web.php
中添加以下内容'urlManager' => array(
'class' => 'yii\web\UrlManager',
'enablePrettyUrl' => true,
'showScriptName' => false,
'rules' => array(
'<controller:\w+>/<id:\d+>' => '<controller>/view',
'<controller:\w+>/<action:\w+>/<id:\d+>' => '<controller>/<action>',
'<controller:\w+>/<action:\w+>' => '<controller>/<action>',
),
),
将 index.php 从网络文件夹内移到外面并更改这3行
require(__DIR__ . '/vendor/autoload.php');
require(__DIR__ . '/vendor/yiisoft/yii2/Yii.php');
$config = require(__DIR__ . '/config/web.php');
这对我来说在开发和生产方面都很有用。