.htaccess 重写规则不起作用

.htaccess 重写规则不起作用,.htaccess,mod-rewrite,.htaccess,Mod Rewrite,这是my.htaccess文件的内容: RewriteEngine on RewriteRule ^upload$ upload.php RewriteRule ^/(\d+)/?.*$ /view.php?id=$1 [L] 第一条规则成功地起作用。当我导航到http://localhost/upload它显示upload.php页面 然而,第二条规则并非如此。当我浏览到:http://localhost/1234/some-string我收到一个404错误。它旨在显示此页面:http://

这是my.htaccess文件的内容:

RewriteEngine on
RewriteRule ^upload$ upload.php
RewriteRule ^/(\d+)/?.*$ /view.php?id=$1 [L]
第一条规则成功地起作用。当我导航到
http://localhost/upload
它显示upload.php页面

然而,第二条规则并非如此。当我浏览到:
http://localhost/1234/some-string
我收到一个404错误。它旨在显示此页面:
http://localhost/view.php?id=1234

希望您能看到我试图用这个规则做什么,我希望URL末尾的最后一个字符串被完全忽略,并将
1234
作为view.php的参数


有人能看出这不起作用的原因吗?我已经尝试了我能想到的一切,但没有成功。谢谢

它将尝试查找目录
/1234/
,但失败。将
/
更改为
-
,它应该可以工作


编辑:完全错了。。。实际上,在模式的开头有一个
/
,而MOD_REWRITE接收的路径没有第一个斜杠。

Edit:对不起,搞错了。你说得对。如果我改为这样做,它会起作用:
RewriteRule^(\d+)/?.$/view.php?id=$1[L]
。不知道你所说的
-
是什么意思。因为它首先查找目录,我不知道如何阻止它这样做。第一个有效,因为url不以
/
结尾(在这种情况下也不起作用,因为规则没有指定这种可能性)。