我刚将所有网络文件复制到我的电脑上,包括.htaccess文件。现在我在XAMPP上运行它。我遇到了这个问题,这个.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 :(得分:0)
我要做的第一件事就是确保你在Apache中启用了重写模块。接下来我会检查你是否配置了Apache以允许在.htaccess文件中重写条件。出于安全原因,默认情况下会阻止大多数htaccess功能。
要检查第二个问题,您可以在httpd.conf
搜索AllowOverride None
。如果找到,请将其更改为AllowOverride All
。您也可以在站点的.conf文件中启用它。
答案 1 :(得分:0)
根据您的评论:RewriteBase
指向root,规则映射到root/index.php
,我猜这不是意图。
尝试改为:
RewriteRule ^(.*)$ /mysite/index.php/$1 [QSA,L]