2012-03-14 79 views
0

想像这样一个URL:如何匹配mod_rewrite的MAC地址

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的狮子):

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] 

回答

0

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

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

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

+0

这样做,非常感谢。 – HanSooloo 2012-03-18 00:02:39