Apache htaccessyii2配置
我正在从事一个Yi2项目,并已在Wamp Localhost上进行了设置。我的Wamp我已设置了一个别名:Apache htaccessyii2配置,apache,.htaccess,mod-rewrite,yii2,Apache,.htaccess,Mod Rewrite,Yii2,我正在从事一个Yi2项目,并已在Wamp Localhost上进行了设置。我的Wamp我已设置了一个别名: Alias /project "c:/Users/Shaun/Desktop/projects/project/web/" <Directory "c:/Users/Shaun/Desktop/projects/project/web/"> AllowOverride all </Directory> 当我导航到
Alias /project "c:/Users/Shaun/Desktop/projects/project/web/"
<Directory "c:/Users/Shaun/Desktop/projects/project/web/">
AllowOverride all
</Directory>
当我导航到上面的url时,我很好地点击了我的SiteController索引操作。但当我尝试去,例如:
http://localhost/project/site/index
它说:
在此服务器上找不到请求的URL/Users/Shaun/Desktop/projects/project/web/index.php
但它肯定在那里?!如果您将我的web.php配置视为我启用的组件:
'urlManager' => [
'enablePrettyUrl' => true,
'showScriptName' => false,
]
还是找不到。但如果我这样做,就可以很好地显示路线:
http://localhost/project/index.php/site/index
令人沮丧,因为我不想这样。这是怎么回事
谢谢,您的项目结构似乎有点不理想。 文件夹web中是否还有其他项目文件夹 如果答案是“是”,则必须将.htaccess文件放在此项目文件夹中
但是,如果项目文件夹包含web,那么它就非常不理想。但在这种情况下,.htaccess文件必须位于项目文件夹中。因为您正在处理虚拟目录(例如别名/site/“/dir/”),所以必须使用
RewriteBase /site/
在apache配置文件中。在httpd.conf或vhost conf中设置
AllowOverride All
。使用漂亮的URL时必须使用此选项。您必须更改三个文件。
基本>.htaccess
基本>网络>.htaccess
基本>配置>web.php
使用下面url中给出的代码
这将对您有所帮助。是否启用了重写模块?“mod_rewrite肯定已启用我已选中”我的道歉我错过了这一行,这通常发生在mod_rewrite未正确启用时,或者.htaccess未正确设置文件权限时(对于您来说,在windows上应该不是问题)。。尝试直接在apacheconf中设置相同的内容,而不是重写,然后完全重新启动服务器,似乎您还没有阅读有关问题上下文的内容。它是与yii2相关的东西。试着将它与apachealias指令结合使用,您会发现这还不够。问题出在基础上。
RewriteBase /site/