.htaccess 无法使用 XAMPP 在本地主机上工作

Posted

技术标签:

【中文标题】.htaccess 无法使用 XAMPP 在本地主机上工作【英文标题】:.htaccess not working on localhost with XAMPP 【发布时间】:2013-06-14 06:34:59 【问题描述】:

我正在使用 XAMPP,但我无法在本地主机上使用 .htaccess 文件。我尝试了很多次.. 在线工作良好。但本地主机显示 [在此服务器上找不到请求的 URL]

我的根目录是真实的

localhost/acre/real/property_available.php
localhost/acre/real/properties


<IfModule mod_rewrite.c>
 RewriteEngine On
 RewriteBase /acre/real/
 RewriteCond %REQUEST_FILENAME !-f
 RewriteCond %REQUEST_FILENAME !-d
 RewriteRule ^properties$ /property_available.php/$1 [NC,QSA]
</IfModule>

【问题讨论】:

localhost 是 Windows 还是其他系统?在服务器或专用机器上使用虚拟主机? localhost 上的 httpd.conf 是否也可以(即所有其他 cfg)?本地主机上记录的任何错误日志数据?仔细检查路径信息是否正常(/prop....php)? 您启用了 mod_rewrite 和 .htaccess 吗?你的 DocumentRoot 是什么? 真正的文件夹是我的文档根目录。 yaa 启用 mod_rewrite 并删除 #from con 文件 【参考方案1】:

刚刚遇到类似问题

签入httpd.conf解决了

     # 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   <--- make sure this is not set to "None"

值得记住的是,我尝试过(来自 Mark 的回答)“将垃圾放入 .htaccess”,这确实导致了服务器错误 - 但即使它正在被读取,它也没有被执行,因为没有允许覆盖。

【讨论】:

我也遇到了这个问题,但是在任何地方都找不到 http.conf 文件。我一定要一个吗? 我认为您应该在默认安装期间创建它。注意它是 httpd.conf 谢谢 - 找到了。通过 Xampp 控制面板访问。我在看 c:/ ..... 路径等。 通常在尝试 .htaccess 中的垃圾以确保它正常工作后,我们首先检查 IfModule 是否已激活,然后我们添加最简单的规则而无需任何条件(类似于 path/page 到 @ 987654325@) 以确保 apache 工作正常,然后您可以一一添加您的条件。【参考方案2】:

在 conf/extra/httpd-vhosts.conf 中,为您遇到问题的所有网站添加 AllowOverride All

<VirtualHost example.site:80>
    # rest of the stuff
    <Directory "c:\Projects\example.site">
        Require all granted
         AllowOverride All <-----This line is required
    </Directory>
</VirtualHost>

【讨论】:

这解决了我在虚拟主机中的 .htaccess 问题。我没有在其他任何地方看到这个解决方案。谢谢! 有趣的是,当我在 wordpress 中更改没有 .htaccess 的永久链接时,这解决了我的问题,我在 httpd.conf 文件中编辑的所有内容都适用于我的 localhost wordpress 设置 这是解决我的重写规则问题的唯一方法。为了解决这个问题,我已经苦苦挣扎了一周。你救了我的一天!非常感谢。【参考方案3】:

试试

<IfModule mod_rewrite.so>
...
...
...
</IfModule>

而不是&lt;IfModule mod_rewrite.c&gt;

【讨论】:

【参考方案4】:

如果没有看到您的系统,很难判断出了什么问题,但请尝试以下方法(如果这些方法不适用于日志错误消息,请评论答案)

[停止您的 Apache 服务器实例。确保它没有运行!]

1) 将 apache 服务器/安装移动到没有长文件名和空格的文件夹 2) 检查 install\conf 文件夹中的 httpd.conf 并查找 AccessFileName。如果是 .htaccess 将其更改为 windows 接受的文件名(例如 conf.htaccess) 3) 仔细检查您的 htaccess 文件是否被读取:向其中添加一些无法解释的垃圾并启动服务器:您应该得到 Error 500。如果你不这样做,文件没有被读取,重新访问 httpd.conf 文件(如果看起来没问题,检查这是否是唯一定义 htaccess 的文件及其位置,它只在一个地方 - 在文件内 - ; 还要检查 httpd.conf 和 htaccess 文件是否都可以访问:未加密,文件访问权限不受限制,驱动器/路径可用 - 并且没有长文件夹路径和文件名 -)再次停止 Apache,然后继续: 4) 如果您的系统上也有 IIS,请从 services.msc 停止它(如果可以的话也卸载它) 5) 将以下内容添加到您的有效 htaccess 文件的顶部: 重写引擎开启 RewriteLog "/path/logs/rewrite.log" #确保路径存在! 重写日志级别 9 6) 清空您的 [apache]\logs 文件夹(如果您使用另一个文件夹,则使用那个 :) 7) 检查以下条目是否设置正确: 动作应用程序/x-httpd-php "c:/your-php5-path/php-cgi.exe" LoadModule php5_module "c:/your-php5-path/php5apache2.dll"LoadModule rewrite_module modules/mod_rewrite.so在 phpX 的文件夹名称中避免长路径名和空格也安装! 8) 启动 apache 服务器 您可以执行上述所有步骤,也可以逐个进行呼叫。但在一天结束时,请确保您尝试了上述所有方法! 如果系统仍然崩溃并且您无法修复它,请从日志文件夹复制并粘贴错误消息以获得进一步帮助

【讨论】:

【参考方案5】:

我遇到了类似的问题。但问题出在文件名“.htaccess”中,因为 Windows 不允许文件名以“.”开头,解决方案是使用 CMD 命令重命名文件。 "重命名 c:\xampp\htdocs\htaccess.txt .htaccess"

【讨论】:

你也可以在windows中创建任何以句点开头的文件,方法是在文件名后面附加句点...所以将文件创建为.htaccess.,windows会去掉附加句点,然后你就结束了.htaccess【参考方案6】:

对于 MacOS capitan、high sierra、MacOS Mojave (10.12+) 上的 xampp vm,您可以关注这些

1. mount /opt/lampp
2. explore the folder
3. open terminal from the folder
4. cd to `htdocs`>yourapp (ex: techaz.co)
5. vim .htaccess
6. paste your .htaccess content (that is suggested on options-permalink.php)

【讨论】:

这对我有用。非常感谢!【参考方案7】:

对于 Windows 用户,请务必仔细查看此部分。

RewriteRule ^properties$ /property_available.php/$1 [NC,QSA]

正如Apache documentation 所说:

mod_rewrite 模块使用基于规则的重写引擎,基于 PCRE 正则表达式解析器,动态重写请求的 URL。

所以^properties$ 意味着Apache 只会寻找与properties 具有完全匹配 的URL。 你可能想试试这个代码。

RewriteRule properties /property_available.php/$1 [NC,QSA]

因此 Apache 会看到包含 properties 的 URL 并将其重写为 /property_available.php/

【讨论】:

【参考方案8】:

我也为我的本地主机设置了 xampp,在设置期间或之后我没有对 xampp 创建的文件做任何事情。

但在“.htaccess”文件中,请确保您已将其设置为类似的内容。对我有用,这对你没有任何影响。

RewriteEngine On
RewriteRule ^filename/?$ filename.html

将 .html 更改为您使用的任何格式。

确保您的安装是干净的,并且只需创建 .htaccess 文件。 还要记住为每个目录放置一个 .htaccess 文件(真的不知道是否可以为所有文件夹使用一个文件,但为了安全起见,只要这样做,它就会一直有效。

【讨论】:

【参考方案9】:

编辑 .htaccess 文件,使第一行显示为“Test.”:

测试。

设置默认处理程序

目录索引 index.php index.html index.htm

...

【讨论】:

以上是关于.htaccess 无法使用 XAMPP 在本地主机上工作的主要内容,如果未能解决你的问题,请参考以下文章

XAMPP 本地服务器上的 Htaccess 用于测试

phonegap 无法与本地主机上的 xampp 服务器连接

Xampp over Lan - CSS/JS 在重定向到本地主机时无法正常工作

使用代码点火器和 gmail smtp 从本地主机上的 xampp 发送电子邮件

我的本地主机服务器上的隐藏目录(与 htaccess 相关)

.htaccess RewriteEngine 在 xampp 中导致 Unexpected 403 Forbidden http 响应代码