2013-05-15 28 views
0

我刚刚将我的所有网络文件复制到我的电脑,包括.htaccess文件。现在我在XAMPP上运行它。我有这个问题,这个.htaccess文件:.htaccess文件从现场服务器复制部分不在本地工作

DirectoryIndex otherindex.php //<<--this line works, it changes my index. 

//but the rest is not: I need to redirecting all request (except existing dir/file) to index.php 
RewriteEngine on 
RewriteBase/
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ index.php/$1 [QSA,L] 

我不知道为什么它在活服务器上工作,但不在我的XAMPP。我怎样才能在两者上都能工作?请帮忙吗?

更新: 检查我httpd.conf和得到这个注释掉:

LoadModule ssl_module modules/mod_rewrite.so

注:我将我的默认htdocs文件夹到其他位置。

+0

您可以发布您的网站的.conf文件的设置?特别是标签之间的内容。 – mattc

+0

没有这样的事情,这只是XAMPP的新鲜安装。 – egig

+0

'LoadModule rewrite_module modules/mod_rewrite.so'是你的注释* httpd.conf *文件吗?看起来.htacces文件被允许作为第一个指令工作,但不是'mod_rewrite'。另一方面,是否有错误,规则未被使用,究竟是什么问题? –

回答

0

我要做的第一件事就是确保在Apache中启用了重写模块。接下来,我会检查您是否配置了Apache以允许在.htaccess文件中重写条件。出于安全原因,大多数htaccess功能默认被阻止。

要检查第二个问题,您可以在httpd.conf中搜索AllowOverride None。如果您发现该问题,请将其更改为AllowOverride All。您也可以在您的网站的.conf文件中启用此功能。

+0

我改变了全部'AllowOverride'给所有人,但是还没有成功。 :( – egig

+0

保存更改后是否重新启动了Apache?更改在重新启动之前不会生效 – mattc

+0

是的,我重新启动了它。请注意,我将默认htdocs文件夹移动到其他位置,是否可能是原因? – egig

0

根据您的意见:与RewriteBase指向根,规则映射到root/index.php,我想这不是意图。

尝试,而不是:

RewriteRule ^(.*)$ /mysite/index.php/$1 [QSA,L] 
+0

谢谢,我会尝试。 – egig

相关问题