我目前在使用 URL 管理器和/或 apache mod_rewrite 或完全其他的东西时遇到问题。
将 showScriptName 设置为 false 时,导航到 domain.com/login、domain.com/logout、domain.com/site/login 等地址的行为都相同。它只是显示主站点/索引,就好像我要导航到 domain.com/eeofjew9j8jfdedfmewf (jibberish)。
也许这是我的 Yii 设置的问题?以下是那些(抱歉草率):
'components'=>array(
'urlManager'=>array(
'urlFormat'=>'path',
'showScriptName'=>false,
'rules'=>array(
'<controller:\w+>/<id:\d+>'=>'<controller>/view',
'<controller:\w+>/<action:\w+>/<id:\d+>'=>'<controller>/<action>',
'<controller:\w+>/<action:\w+>'=>'<controller>/<action>',
'login'=>'site/login',
'logout'=>'site/logout',
'register'=>'users/register'
),
,...
这是我在 www 根目录中设置 .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
我正在使用 VPS 服务器,因此我具有 root 访问权限来对 apache 进行任何所需的更改。我检查了我的 phpinfo 并且 mod_rewrite 正在运行并启用。在我的 apache 配置中,我有 www 目录:
AllowOverride All
Options Indexes FollowSymLinks MultiViews
Order allow,deny
Allow from all
我一直在通过 3 个不同的主机(godaddy、dreamhost 和锂主机)在这个问题上摸不着头脑,所以我假设这是我的问题。既然我有一个 VPS,我希望我能最终找出我的问题并解决它。