Apache mod_rewrite不使用目录名

Apache mod_rewrite不使用目录名,apache,mod-rewrite,Apache,Mod Rewrite,我正在使用mod_rewrite将标识符以以下形式传递到我的web应用程序: http://clipi.ca/1W 我用一个简单的正则表达式来表示: RewriteCond %{REQUEST_URI} ^/([0-9a-zA-Z]+)$ RewriteRule ^(.*)$ /index.php?urlid=%1 [L,QSA] …在大多数情况下都可以正常工作。但是我注意到,当标识符是目录名时,重写失败,Apache返回目录索引 如何停止此行为并将重写规则也应用于目录?(请注意,只要引用目

我正在使用mod_rewrite将标识符以以下形式传递到我的web应用程序:

http://clipi.ca/1W
我用一个简单的正则表达式来表示:

RewriteCond %{REQUEST_URI} ^/([0-9a-zA-Z]+)$
RewriteRule ^(.*)$ /index.php?urlid=%1 [L,QSA]
…在大多数情况下都可以正常工作。但是我注意到,当标识符是目录名时,重写失败,Apache返回目录索引


如何停止此行为并将重写规则也应用于目录?(请注意,只要引用目录中的实际文件,重写条件就会失败,这不是问题。)

我想我自己可能已经解决了:显然,Apache会在应用任何重写规则之前,在映射到文件系统上目录的请求后加一个斜杠。在我看来,这有点傻,但通过在我的条件正则表达式中添加可选的尾部斜杠:

RewriteCond %{REQUEST_URI} ^/([0-9a-zA-Z]+)/?$
…它似乎起作用了

不过,理想的解决方案是让Apache不要在开始时附加尾部斜杠。如果有人知道怎么做,把它贴在这里,我会给你答案