部署的 Yii 应用程序无法正确构建域子文件夹的 url


Deployed Yii app don't build url properly to domain subfolder

EDIT(一个解决方案(:最后,问题不在于 yii 配置或虚拟服务器,而在于主服务器。我联系了服务器管理员,通过更改主服务器(托管 mi 虚拟服务器的位置(将请求重定向到的 URL 以附加包含虚拟文件夹名称的字符串,解决了这个问题。

我不确定这是否是最好的解决方案,但这是一个解决方案。因此,如果您遇到类似的问题,您可能需要联系您的服务器管理员。

以下是原始问题的详细信息以及我尝试过的一些选项,仅供参考:

我已经开发了一个 Yii 应用程序几个星期,它在我的本地服务器上运行良好,但是在部署应用程序时,我在使 URL 正常工作时遇到了一些麻烦。

在服务器中,我有一个类似于这样的结构:

/www/MyApp/(index.php, protected folder, etc)
/www/yii (the framework is located here)

我可以使用这样的 URL 访问我的网站:

www.somedomain.ac/VirtualFolder/MyApp

我的问题是 yii 生成的所有链接都指向(例如(:

www.somedomain.ac/MyApp/index.php?r=controller/index 

而不是

www.somedomain.ac/VirtualFolder/MyApp/index.php?r=controller/index 

我尝试在配置中修改 urlManager 部分,并出于某种原因添加了以下规则:

'../../VirtualFolder/MyApp/index.php/'.'<controller:'w+>/<action:'w+>/<id:'d+>'=>'<controller>/<action>',
'../../VirtualFolder/MyApp/index.php/'.'<controller:'w+>/<action:'w+>'=>'<controller>/<action>',

使用完整的 URL 使一些构建的 URL 指向正确的操作,但其他 URL 仍然不起作用(所有将表单发送到服务器的 URL(。

几天来,我一直在尝试其他类似问题的解决方案(例如更改应用程序的基本路径,向其添加"VirtualFolder"(,但它们似乎不起作用。

有关如何解决问题的建议将不胜感激。

谢谢。

====

================================================

编辑:我正在尝试使用这样的.htaccess文件来做到这一点:

Options +FollowSymLinks
RewriteEngine On
RewriteCond %{HTTP_HOST} somedomain.ac$ [NC]
RewriteCond %{HTTP_HOST} !VirtualFolder
RewriteRule ^(.*)$ http://somedomain.ac/VirtualFolder/$1 [R=301,L]

我将其复制到我的网络根目录,但尚未工作。还尝试将其复制到MyApp/protected文件夹并直接复制到MyApp中。我错过了什么吗?

谢谢。

你应该尝试将RewriteBase指令添加到.htaccess文件中

(问题是如何解决的(:最后,问题不在于 yii 配置或虚拟服务器,而在于主服务器。我联系了服务器管理员,通过更改主服务器(我的虚拟服务器托管到的位置(将请求重定向到的 URL 以包含包含虚拟文件夹名称的字符串,解决了该问题。

因此,如果您遇到类似的问题,您可能需要联系您的服务器管理员。