重写尾随斜线问题

Jam*_*ery 4 apache

这是我的.htaccess文件

Options +FollowSymlinks
RewriteEngine on
ErrorDocument 404 /404.php

RewriteRule ^(\d*)/(.*) /page.php?id=$1&slug=$2
Run Code Online (Sandbox Code Playgroud)

一切正常.但是当我输入site.com/342/my-page/(带有斜线)时,我得到了404.

我需要尾随斜杠作为可选.即它将重定向到正确的页面,有或没有斜杠.

我尝试了这个,但它没有用

RewriteRule ^(\d*)/(.*)/?$ /page.php?id=$1&slug=$2
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

unb*_*eli 6

.*是贪婪的,所以它会吃掉你的尾随斜线,即使它没有.你必须强迫它远离这样:

RewriteRule ^(\d*)/(.*[^/])/?$ /page.php?id=$1&slug=$2
Run Code Online (Sandbox Code Playgroud)

这样可以确保$ 2永远不会以斜杠结尾