在localhost中的xampp中启用重写模式

时间:2012-11-15 10:29:09

标签: apache .htaccess mod-rewrite xampp localhost

我正在使用Windows 7 64位(也许这并不重要)我安装了xampp。 在我的htdocs /目录中,我有一个以上的项目。现在,对于其中一个(假设是htdocs / test /),我创建了名为“example”的vhost。这很好...... 在dir / test /里面我有.htaccess文件,代码如下:

RewriteEngine on

RewriteBase /test
Options +FollowSymLinks
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !(.*)\.(js|gif|jpeg|jpg|png)$
RewriteRule . index.php

这里我想将所有流量重定向到我的index.php页面,因为我在这里使用了一些我的系统,用于从索引页面开始的整个项目。在httpd.conf中,我启用了rewrite_module,也启用了

<Directory "C:/Program Files/xampp/htdocs">

我已将AllowOverride指令更改为All

现在,正如我所说,当我尝试使用创建的vhost“示例”访问我的项目时,这很好用。但是当我尝试访问我的htdocs目录中的其他项目时,我在日志文件中收到内​​部服务器错误(HTTP 500)和此消息:

[Thu Nov 15 11:07:12 2012] [error] [client 127.0.0.1] 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.

此外,如果我输入网址127.0.0.1localhost,我会使用“示例”vhost定义我的项目... 这非常令人困惑,任何人都可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

听起来你的root和子目录htaccess文件存在冲突。从根htaccess文件中排除子目录处理,并确保使用[L]ast rule指令。

Root HTACCESS - 排除“test”子目录,使用[L] ast规则指令。

Options +FollowSymLinks

RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !(.*)\.(js|gif|jpeg|jpg|png)$

# exclude the "test" subdirectory
RewriteCond %{REQUEST_URI} !^(test)/?

# add [L]
RewriteRule . index.php [L]

“测试”子目录HTACCESS - 使用[L] ast规则指令。

RewriteEngine on
RewriteBase /test/
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !(.*)\.(js|gif|jpeg|jpg|png)$

# add [L]
RewriteRule . index.php [L]