在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>
您还应该包括一个重写库,并确保关闭了多视图。