6

我有一个简单的 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
4

3 回答 3

15

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

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

  2. 找到包含的行

    #LoadModule rewrite_module modules/mod_rewrite.so
    

    和(取消注释)更改为

    LoadModule rewrite_module modules/mod_rewrite.so
    
  3. 查找所有出现的

    AllowOverride None
    

    并更改为

    AllowOverride All
    
  4. 重启 xampp

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

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

于 2015-08-12T09:38:11.363 回答
4

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

RewriteBase /test/
于 2012-09-05T00:32:21.117 回答
2

可以通过httpd.conf.htaccess文件启用重写规则。
关于如何在 wamp/xampp中启用.htaccess mod_rewrite的说明

步骤 1:转到安装目录:
C:\xampp>\apache\confC:\wamp\bin\apache\Apache2.2.11\conf
步骤 2:在文本编辑器中打开httpd.conf
步骤 3:找到包含的行 #LoadModule rewrite_module modules/mod_rewrite.so
Step 4: Remove (#) from使模块启用的行首
第 5 步:现在更改所有出现AllowOverride None 并替换为AllowOverride All
第 6 步:现在重新启动wamp/xampp服务器

于 2018-04-03T22:15:44.230 回答