HTACCESS导致错误404

时间:2016-12-17 21:30:25

标签: apache .htaccess mod-rewrite

我在子目录

中有以下htaccess代码
Options +FollowSymlinks
RewriteEngine on
RewriteRule ^([0-9]+).html$ order-details.php?id=$1 [NC,L]

工作正常。问题是该目录中的每个其他页面都会出现错误404。

链接example.com/sub/sub/123456.html正常运行。此外,example.com/sub/sub/工作正常,因为我在子目录中有一个索引文件。但是,example.com/sub/sub/anotherpage.html给出错误404.删除htaccess解决了一个问题并带来了另一个问题。

example.com/sub/sub /

3 个答案:

答案 0 :(得分:1)

您可以添加

RewriteCond %{REQUEST_FILENAME} !-f

要使用您的代码,请务必忽略文件夹中存在的文件。

Options +FollowSymlinks
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([0-9]+).html$ order-details.php?id=$1 [NC,L]

答案 1 :(得分:0)

您尝试访问包含字母数字名称的页面。 但是,在你的htaccess上它只适用于数字版本。

RewriteRule ^([0-9]+).html$ order-details.php?id=$1 [NC,L] 仅访问由[0-9]

引起的数字名称

如果要重定向 alpha 数字,则必须使用其他蒙版。也许[0-9A-Za-z]

答案 2 :(得分:0)

立即行动。看起来我必须删除sub/sub/中htaccess中的.php扩展名。