htaccess和mod_rewrite重定向错误


htaccess and mod_rewrite redirect error

在ubuntu 13.04、apache2和php 5.4上,我得到了404错误。在我的机器上启用了mod重写

我的.htaccess代码是这样的:

<IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteRule ^/dl/([0-9]+)/$ dl.php?id=$1
</IfModule>

并且dl.php被设置为只回显变量:

<?php
print_r($_GET);
?>

在输出时,当我转到这个地址http://localhost/digidoc/dl/5时,它显示404错误

p.s.:包含在digidoc文件夹和digidoc文件中的.htaccess文件在web服务器根中

更改

RewriteRule ^/dl/([0-9]+)/$ dl.php?id=$1

进入

RewriteRule ^/digidoc/dl/([0-9]+)/?$ dl.php?id=$1

注意到了?,所以最后一个斜杠是可选的。同时添加digidoc/,因为该规则应用于整个url。

您需要去掉前导斜杠:

Options -Multiviews
<IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteBase /digidoc/
    RewriteRule ^dl/([0-9]+)$ dl.php?id=$1 [L,QSA]
</IfModule>

您还应该包括一个重写库,并确保关闭了多视图。