在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服务器根目录
答案 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>
您还应该包含重写基础以及确保关闭多视图。