我是 yii 新手,在生产服务器上配置 .htaccess 文件时遇到了一些问题。
在本地主机上:
申请地点: /www/connect_donors/
yii 提供的默认 URL 是,
http://localhost/connect_donors/index.php?r=controllerId/functionName
我们使用 /connect_donors/protected/config/main.php 中的 urlManager 来配置 SEO 友好的 url。
'<controller:\w+>/<id:\d+>' => '<controller>/view',
'<controller:\w+>/<action:\w+>/<id:\d+>' => '<controller>/<action>',
'<controller:\w+>/<action:\w+>' => '<controller>/<action>'
现在有效的 URL 是
http://localhost/connect_donors/index.php/controllerId/functionName
然后我使用 .htaccess 文件从上面的 URL 中删除 index.php。
.htaccess 的位置是:/connect_donors/.htaccess
以下是 .htaccess 文件,
RewriteEngine On
RewriteBase /connect_donors
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)\?*$ index.php/$1 [L,QSA]
网址改成:
http://localhost/connect_donors/controllerId/functionName
一切都很好,很棒。
但是昨天我在生产服务器上上传了应用程序。
在生产服务器上
一切都保持不变,只是我必须更改 .htaccess 文件。
服务器上的 .htaccess 文件是,
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)\?*$ index.php/$1 [L,QSA]
现在是以下网址:
http://donorsconnect.com/
正确加载服务器的主页。
但是, http://donorsconnect.com/profile
再次重定向到主页。
注意:“配置文件”控制器上没有设置会话。
class ProfileController extends CController
{
public function actionIndex()
{
$this->render('index');
}
}
我尝试了很多东西,将 .htaccess 文件更改为不同的代码。但没有人帮助我。
任何帮助都是可观的。
解决方案
我终于得到了解决方案和我所犯的错误。
我的组件有一个包含 baseUrl 的请求数组。
'components'=>array(
...
'request' => array(
'baseUrl' => 'http://donorsconnect.com',
...),
由于这个原因,它没有加载。我没有找到真正的原因。
但是在删除那个“请求”数组之后,它的加载很好。