XAMPP使得为Windows配置本地LAMP堆栈变得轻而易举。因此,启用htaccess文件是一场噩梦是非常令人失望的。

我的问题:
我有一个PHP应用程序,需要apache / php来搜索应用程序中包含的/ includes /目录。为此,必须在apache中允许htaccess文件,并且htaccess文件必须准确指定包含目录的位置。

问题是,我无法让我的apache配置来查看这些htaccess文件。我在uni处安装此应用程序时遇到了重大麻烦,并让管理员在那里帮助完成设置。这应该不是那么难,但出于某种原因我不能让apache玩得很好。

这是我的设置:

C:\ XAMPP结果 C:\ XAMPP \ htdocs中点击 c:\ xampp \ apache \ conf \ httpd.conf - 我已经在下面列出了所做的更改 c:\ xampp \ apache \ bin \ php.ini - 此文件的更改会影响php安装
有趣的是,c:\ xampp \ php \ php.ini更改意味着什么 - 这不是影响php安装的ini。

以下几行是我对httpd.conf文件的补充

#AccessFileName .htaccess
AccessFileName htaccess.txt
#
# The following lines prevent .htaccess and .htpasswd 
# files from being viewed by Web clients. 
#
#<Files ~ "^\.ht">
<Files ~ "^htaccess\.">
    Order allow,deny
    Deny from all
</Files>

<Directory "c:/xampp/htdocs">
#
# AllowOverride controls what directives may be placed in 
# .htaccess files.
# It can be "All", "None", or any combination of the keywords:
#   Options FileInfo AuthConfig Limit
#
    AllowOverride All
#
# Controls who can get stuff from this server.
#
    Order allow,deny
    Allow from all
</Directory>

以下是包含在以下内容中的整个htaccess文件: c:\ xampp \ htdocs \ application \ htaccess.txt

<Files ~ "\.inc
Warning: require(include.general.inc) [function.require]: failed to open stream: No such file or directory in C:\xampp\htdocs\application\menu\logon.php on line 21
quot;> Order deny,allow Deny from all </Files> php_value default_charset "UTF-8" php_value include_path ".;c:\xampp\htdocs\application\includes" php_value register_globals 0 php_value magic_quotes_gpc 0 php_value magic_quotes_runtime 0 php_value magic_quotes_sybase 0 php_value session.use_cookies 1 php_value session.use_only_cookies 0 php_value session.use_trans_sid 1 php_value session.gc_maxlifetime 3600 php_value arg_separator.output "&amp;" php_value url_rewriter.tags "a=href,area=href,frame=src,input=src,fieldset="

包含目录存在于指定的位置。

当我尝试访问该应用程序时,收到以下错误:

<*>

致命错误:require()[function.require]:在C:\ xampp \ htdocs中打开所需的'include.general.inc'(include_path ='。; C:\ xampp \ php \ pear \ random')失败第21行上的\ application \ menu \ logon.php

包含路径c .. \ random \在上面列出的php.ini文件中指定。 xampp安装无法允许在htaccess.txt文件中指定的另一个包含路径。

请帮忙!我猜测httpd.conf或htaccess.txt文件可能有错误..但它似乎没有读取htaccess文件。我试图尽可能彻底地原谅这篇文章的冗长。

现在我知道一个解决方法可能是简单地将include_path添加到php文件中,但我不打算访问我计划部署应用程序的位置上的php.ini文件。但是,我将能够请求服务器管理员允许htaccess文件。

更新:将htacces.txt重命名为.htaccess并修改了httpd.conf文件中的相应指令,所有这些似乎都有效。该应用程序建议在httpd中命名htaccess.txt和修改后的指令。这些显然是错误的(至少对于xampp堆栈而言)。谢谢您的帮助。

顺便说一句,如果需要将应用程序部署到多个位置,使用ini_set()是一种非常友好的方式,所以尤其要感谢指针。

有帮助吗?

解决方案

  1. 为什么需要将.htaccess重命名为htaccess.txt
  2. 尝试使用 set_include_path()设置include_path,看看是否有帮助(作为中间修复)
  3. 通过 phpinfo()验证要使用哪个php.ini

其他提示

您可以使用ini_set()更改每个请求的include_path。这样可以避免必须使用htaccess。

我的htaccess在XAMPP下工作正常 - 虽然默认禁用某些模块 - 你确定你想要的模块是否已启用?

我认为您正在寻找的搜索内容是:

AllowOverride All

我的猜测是在xampp中你需要在httpd.conf中启用AllowOverride(通过.htaccess)。这是一个简单的安全措施,可以阻止新手安装一个可以破解的平台:P

您需要在主httpd.conf文件中启用AllowOverride All。查看XAMPP FOR / apache / conf / http.conf)

只需这样做:

open file ...\xampp\apache\conf\httpd.conf

find line "LoadModule rewrite_module modules/mod_rewrite.so"

if here is a # before this line remove it.(remove comment)

其工作

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top