3

编辑(解决方案): 最后,问题不在于 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)。

几天来,我一直在尝试解决类似问题的其他解决方案(例如更改应用程序的基本路径,向其中添加“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。我错过了什么吗?

谢谢。

4

2 回答 2

0

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

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

于 2014-01-12T15:55:11.313 回答
0

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

于 2014-01-09T14:11:57.527 回答