Url rewriting Yii::使用Showscriptname=False和Url管理器发出问题

Url rewriting Yii::使用Showscriptname=False和Url管理器发出问题,url-rewriting,yii,yii-components,Url Rewriting,Yii,Yii Components,我目前在使用URL管理器和/或apache mod_重写或其他完全不同的东西时遇到问题 当showScriptName设置为false时,导航到domain.com/login、domain.com/logout、domain.com/site/login等地址的行为都是相同的。它只是显示了主站点/索引,就好像我要导航到domain.com/eeofjew9j8jfdedfmewf(jibberish) 也许这是我的Yii设置的问题?以下是这些(很抱歉这么草率): 我使用的是一个VPS服务器,所

我目前在使用URL管理器和/或apache mod_重写或其他完全不同的东西时遇到问题

当showScriptName设置为false时,导航到domain.com/login、domain.com/logout、domain.com/site/login等地址的行为都是相同的。它只是显示了主站点/索引,就好像我要导航到domain.com/eeofjew9j8jfdedfmewf(jibberish)

也许这是我的Yii设置的问题?以下是这些(很抱歉这么草率):

我使用的是一个VPS服务器,所以我有根用户权限对apache进行任何必要的更改。我已经检查了我的phpinfo,mod_rewrite正在运行并启用。在我的apache配置中,我的www目录有:

AllowOverride All
Options Indexes FollowSymLinks MultiViews
Order allow,deny
Allow from all

我一直在通过3个不同的主机(godaddy、dreamhost和lithiumhosting)对这个问题挠头,所以我认为这是我这边的问题。现在我有了VPS,我希望我能最终解决我的问题

如果删除这些行会发生什么

enter code here
    # otherwise forward it to index.php
    RewriteRule . index.php

如果添加此代码,请查看它是否有效

'<action:(login|logout|register|contact)>' => 'site/<action>',
'=>'站点/',

首先验证服务器是否正在分析.htaccess文件。这只需将随机文本放入.htaccess文件中即可完成,如

CREATE AN ERROR
      'contact'=>'site/contact',
如果出现服务器错误,则正在解析文件。您可能必须将.htaccess文件向上移动到一个目录才能使其工作

在这之后,检查以确保Apache中的重写模块处于打开状态。首先检查phpinfo并查找正在运行的模块。如果没有,您可能必须删除模块前面的注释(#)字符

在phpinfo中显示模块之后,看看是否可以进行基本重写,以确保Apache没有问题

RewriteEngine on
RewriteRule ^ http://google.com/? [L,R]
如果不起作用,请尝试添加

Options +SymLinksIfOwnerMatch
归档

一旦你有了Apache,现在就由yii决定了。此代码:

RewriteEngine On
RewriteBase /mybasedirectory
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)\?*$ index.php/$1 [L,QSA]
添加“重写基础”选项,如果文档根目录中没有文件(如htdocs),则可能需要该选项

最后,如果这不能解决问题,那么将您的规则限制为一个简单的规则,例如

CREATE AN ERROR
      'contact'=>'site/contact',

看看是否至少能重定向到你认为应该的地方。当然,您可能需要再次检查.htaccess的基本规则,以确保允许overide,并且子目录中没有错误的.htaccess。我希望这有帮助。我终于开始工作了。

我不知道yii,但我以前也实现过类似的功能。如果我成功了,我会让规则、键和值进行切换……不过,还是同样的问题。我转入了一个不同的项目,但从来没有在Yii中真正实现这一点!有点令人沮丧,但如果下次我在另一个Yii项目上工作时遇到同样的问题,我会让你知道。接受这个作为答案,因为你的答案是最彻底的,不过,为了记录在案,我已经从这个项目转移了,没有网站设置来测试这个解决方案。你有什么建议吗??