以正斜杠结尾重新写入URL
我有一个关于重新编写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
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]
。