将 mod_rewrite 与 XAMPP 和 windows 7 - 64 位一起使用?

Posted

技术标签:

【中文标题】将 mod_rewrite 与 XAMPP 和 windows 7 - 64 位一起使用?【英文标题】:using mod_rewrite with XAMPP and windows 7 - 64 bit? 【发布时间】:2012-08-29 15:48:56 【问题描述】:

我有一个简单的 mod_rewrite 规则,它允许我将任何不是实际文件或目录的请求重定向到 index.php 文件

    Options +SymLinksIfOwnerMatch 
    RewriteEngine On 
    RewriteCond %REQUEST_FILENAME !-f 
    RewriteCond %REQUEST_FILENAME !-d
    RewriteRule . /index.php [L]

在 PHP 文件中我放了这个简单的代码来处理这个导航

<?php
$navString = $_SERVER['REQUEST_URI']; // Returns "/Mod_rewrite/edit/1/"
$parts = explode('/', $navString); // Break into an array
// Lets look at the array of items we have:
print_r($parts);
?>

我的开发环境是 XAMPP 和 Windows 7 - 64 位 httpd.conf 文件

<Directory />
    Options FollowSymLinks
    AllowOverride All
    Order deny,allow
    Deny from all
</Directory>

<Directory "C:/xampp/cgi-bin">
    AllowOverride All
    Options None
    Order allow,deny
    Allow from all
</Directory>

我的问题是当我将任何变量传递给脚本时

http://locahost/test/somethinghere/andhere

它将我重定向到本地主机默认页面

http://locahost/xampp

【问题讨论】:

是您的 xampp 上下文设置为单个主机(例如 localhost 中的所有内容)还是使用虚拟主机? @zamnuts 我认为它使用了 VirtualHost 但它是自动管理的,因为所有的 wordpress 和其他脚本重写规则都可以正常工作 如果不查看您的 httpd.conf 和虚拟主机配置,我认为我无法为您提供帮助。 查看此链接only4ututorials.blogspot.com/2017/04/… 【参考方案1】:

以下是如何在 xampp 中启用 .htaccess mod_rewrite 的说明。

    在文本编辑器中打开并编辑 C:\xampp\apache\conf\httpd.conf

    找到包含的行

    #LoadModule rewrite_module modules/mod_rewrite.so
    

    和(取消注释)更改为

    LoadModule rewrite_module modules/mod_rewrite.so
    

    查找所有出现的

    AllowOverride None
    

    改成

    AllowOverride All
    

    重启xampp

就是这样,你应该好好去。

帮助:http://www.leonardaustin.com/blog/technical/enable-mod_rewrite-in-xampp/

【讨论】:

【参考方案2】:

已解决 我刚刚将文件夹添加到 .htaccess 并删除 Options +SymLinksIfOwnerMatch

RewriteBase /test/

【讨论】:

XAMPP Windows 7。.htaccess 文件在哪里? 尝试了很多、更复杂的变体,但实际上,这也是我的答案。谢谢。【参考方案3】:

可以通过 httpd.conf.htaccess 文件启用重写规则。 wamp/xampp中.htaccess mod_rewrite的开启说明第一步:进入安装目录:C:\xampp&gt;\apache\confC:\wamp\bin\apache\Apache2.2.11\conf第 2 步: 在文本编辑器中打开 httpd.conf第 3 步: 找到包含 #LoadModule rewrite_module modules/mod_rewrite.so第 4 步: 从行首删除 (#) 以启用模块第 5 步: 现在更改所有出现的 AllowOverride None 并替换为 AllowOverride All第 6 步: 现在重新启动 wamp/xampp 服务器

【讨论】:

以上是关于将 mod_rewrite 与 XAMPP 和 windows 7 - 64 位一起使用?的主要内容,如果未能解决你的问题,请参考以下文章

CodeIgniter:Xampp 上的 Mod_Rewrite

XAMPP .htaccess mod_rewrite 不工作

XAMPP httpd.conf 设置以允许 mod_rewrite 规则

XAMPP mod_rewrite 对象未找到错误

从 xampp 移动到 apache 2.4.7 后,Laravel 路由返回 404。 mod_rewrite aur htaccess 或缺少 apache 设置?

本地 Apache 服务器 mod_rewrite/pretty links 问题