URL 重写移除 url 结尾

URL rewriting removes url ending

我一直在尝试使用 htaccess 重写我拥有的特定文件 /u.php/example 到 /u/example。我将通过 php url 解析获取和使用的 /example 部分。

因此,我阅读的另一个问题建议使用以下代码

RewriteCond %{THE_REQUEST} /(u|a)\.php [NC]
RewriteRule ^ /%1 [L,R]
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.*?)/?$ /.php [L]

但是重写时不会保留 /u.php/example 中的 /example,如果我只输入 /u/example.

会导致 500 错误

有解决办法吗?可能是什么问题呢?我没能在 Stack 上找到解决方案。

您需要从 URI

捕获并重定向 /example 部分
RewriteCond %{THE_REQUEST} /(u|a)\.php/([^\s]*) [NC]
RewriteRule ^ /%1/%2 [L,R]
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.*?)/(.*)?$ /.php/ [L]