想象一下这样的网址:
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]
答案 0 :(得分:0)
尝试删除匹配中的前导斜杠:
RewriteRule ^a/b/xy-(.*)-/c$ ~user/d.php [NE]
当您尝试匹配.htaccess文件中的规则时,Mod_rewrite会删除URI中的前导斜杠(前缀)。