Как сопоставить MAC-адрес в mod_rewrite - PullRequest
0 голосов
/ 14 марта 2012

Представьте себе URL-адрес, подобный следующему:

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 голосов
/ 14 марта 2012

Попробуйте удалить косую черту в вашем матче:

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

Mod_rewrite удаляет начальную косую черту (префикс) в URI при попытке сопоставить правила в файле .htaccess.

...