子域上的静态Codeigniter应用程序

时间:2013-10-28 22:39:23

标签: php apache .htaccess codeigniter mod-rewrite

我正在编写一个应用程序,该应用程序需要托管在已使用现有应用程序的服务器上。普通网址'www.site.org.au'显示正常网页, 对于我们的应用程序和测试服务器,还有两个子域app.site.org.au和test.site.org.au。

我正在本地xampp服务器上开发这个应用程序,但我希望能够在子域上开发这个应用程序,以便在应用程序生效时,希望不会有太多的混乱和搞砸。 / p>

为此,我有以下https-vshost.conf

<VirtualHost *:80>
    DocumentRoot "C:/xampp/htdocs/test"
    ServerName test.localhost.com
</VirtualHost>

同样我已添加到我的主机文件

127.0.0.1       test.localhost.com

可以看出,我已经在htdoc文件夹中设置了目录,这样当我访问test.localhost.com时,我将页面加载到htdocs中的test文件夹中。

我有.htaccess文件,如下所示

<IfModule mod_rewrite.c>
    Options +FollowSymLinks
    Options +Indexes
    RewriteEngine On

    RewriteBase /

    RewriteCond %{HTTP_HOST} !www.example.com$ [NC]
    RewriteCond %{REQUEST_URI} ^/$
    RewriteCond %{HTTP_HOST} ^(www.)?([a-z0-9-_]+).example.com [NC]
    RewriteRule (.*) /index.php/controller/function/%2 [P]

    RewriteCond $1 !^(index\.php|images|robots\.text|css|js);
    RewriteRule ^(.*)$ /index.php/$1 [L]
</IfModule>

目前访问test.localhost.com会给我一个500内部服务器错误

子域只适用于单个应用程序,而hense也需要能够使用其中的任何控制器。

所以,我在这里做错了什么?

编辑: 错误日志为每个请求显示以下行

[Tue Oct 29 08:55:10.044889 2013] [core:error] [pid 5884:tid 1652] [client 127.0.0.1:52811] AH00124: Request exceeded the limit of 10 internal redirects due to probable configuration error. Use 'LimitInternalRecursion' to increase the limit if necessary. Use 'LogLevel debug' to get a backtrace.
[Tue Oct 29 08:55:10.044889 2013] [core:error] [pid 5884:tid 1652] [client 127.0.0.1:52811] AH00124: Request exceeded the limit of 10 internal redirects due to probable configuration error. Use 'LimitInternalRecursion' to increase the limit if necessary. Use 'LogLevel debug' to get a backtrace.

1 个答案:

答案 0 :(得分:0)

您的错误是您的第二条规则条件中有一个迷路;

RewriteCond $1 !^(index\.php|images|robots\.text|css|js);
# this is the culprit screwing everything up------------^

摆脱它,因为有了它,如果你;之后没有index.php,你就不会这样做。因此它会永远重写为/index.php/index.php