.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>
而不是<IfModule mod_rewrite.c>
【讨论】:
【参考方案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 在本地主机上工作的主要内容,如果未能解决你的问题,请参考以下文章
phonegap 无法与本地主机上的 xampp 服务器连接
Xampp over Lan - CSS/JS 在重定向到本地主机时无法正常工作
使用代码点火器和 gmail smtp 从本地主机上的 xampp 发送电子邮件
我的本地主机服务器上的隐藏目录(与 htaccess 相关)
.htaccess RewriteEngine 在 xampp 中导致 Unexpected 403 Forbidden http 响应代码