如何匹配mod_rewrite中的MAC地址

时间:2012-03-14 16:03:47

标签: mod-rewrite

想象一下这样的网址:

http://hostname/a/b/xy-00:11:22:33:44:55-/c

我想在根目录中放一个.htaccess文件并将其处理为:

http://hostname/d.php,其中d.php确实存储在文件系统中/home/user/d.php

我的.htaccess文件中有以下内容,但没有发生匹配,即Apache正在说404 Not Found。

RewriteRule    ^/a/b/xy-(.*)-/c$  ~user/d.php [NE]

关于如何使这项工作的任何想法?

文件系统布局:

\
+etc
| +apache2
|   +httpd.conf
|   +extra
|   | +httpd-userdir.conf
|   +users
|     +user.conf
+Library
| +WebServer
|   +Documents
|     +index.html.en
|     +info.php
+Users
  +user
    +Sites
      +d.php

相关的/etc/apache2/httpd.conf剪辑(在MacOS X Lion上):

DocumentRoot "/Library/WebServer/Documents"

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

<Directory "/Library/WebServer/Documents">

    Options Indexes FollowSymLinks MultiViews
    AllowOverride All
    Order allow,deny
    Allow from all

</Directory>

/Library/WebServer/Documents/.htaccess:

RewriteRule    ^/a/b/xy-(.*)-/c$  ~user/d.php [NE]

1 个答案:

答案 0 :(得分:0)

尝试删除匹配中的前导斜杠:

RewriteRule    ^a/b/xy-(.*)-/c$  ~user/d.php [NE]

当您尝试匹配.htaccess文件中的规则时,Mod_rewrite会删除URI中的前导斜杠(前缀)。