htaccess和mod_rewrite重定向错误

时间:2013-11-29 21:29:52

标签: php .htaccess mod-rewrite apache2

在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错误

ps.s.:digidoc文件夹和digidoc文件夹中包含的.htaccess文件位于Web服务器根目录

2 个答案:

答案 0 :(得分:1)

更改

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

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

注意?,所以最后一个斜杠是可选的。当规则应用于整个网址时,也请添加digidoc/

答案 1 :(得分:0)

你需要摆脱领先的斜杠:

Options -Multiviews

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

您还应该包含重写基础以及确保关闭多视图。