以正斜杠结尾重新写入URL

以正斜杠结尾重新写入URL,url,mod-rewrite,url-rewriting,Url,Mod Rewrite,Url Rewriting,我有一个关于重新编写URL的快速问题。我希望我所有的页面都能被重新书写 mysite.com/edit.php -> mysite.com/edit/ mysite.com/search.php -> mysite.com/search/ 除此之外,它还应该能够获取参数 mysite.com/edit.php -> mysite.com/edit/?id=2 这是我到目前为止所拥有的,但它不需要结尾/,所以它只是mysite.com/edit RewriteCond %{D

我有一个关于重新编写URL的快速问题。我希望我所有的页面都能被重新书写

mysite.com/edit.php -> mysite.com/edit/
mysite.com/search.php -> mysite.com/search/
除此之外,它还应该能够获取参数

mysite.com/edit.php -> mysite.com/edit/?id=2
这是我到目前为止所拥有的,但它不需要结尾
/
,所以它只是
mysite.com/edit

RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_FILENAME} !-f
RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_FILENAME} !-d
RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_FILENAME}\.php -f
RewriteRule ^(.+)$ /$1.php [L,QSA]

另外,如果用户尝试添加
.php
,是否可以不允许用户实际添加?因此,例如,如果我有
/edit.php
,我让它工作
/edit//code>或
/edit
,而用户实际上试图键入
/edit.php
,它就不会工作。

不确定斜杠为什么不被接受,但对于第二部分,您可以添加一个重写规则来捕获以
.php
结尾的URL(使用您想要的任何其他条件)并执行404重定向。如果我没有记错的话,它类似于标志中的
[R=404]