.htaccess htaccess中的多次重写规则可避免404

.htaccess htaccess中的多次重写规则可避免404,.htaccess,mod-rewrite,url-rewriting,.htaccess,Mod Rewrite,Url Rewriting,我正在建立一个网站,它使用API来获取它显示的所有信息 我在.htaccess文件中使用以下重写规则 RewriteEngine on RewriteCond %{SCRIPT_FILENAME} !-f RewriteCond %{SCRIPT_FILENAME} !-d RewriteCond %{SCRIPT_FILENAME} !-l RewriteRule ^(.*)$ user.php/$1 为了使任何看起来不属于404的URL,而是调用user.php文件,这样我就可以获取URL

我正在建立一个网站,它使用API来获取它显示的所有信息

我在.htaccess文件中使用以下重写规则

RewriteEngine on
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-l
RewriteRule ^(.*)$ user.php/$1
为了使任何看起来不属于404的URL,而是调用user.php文件,这样我就可以获取URL的最后一部分,将其提取到API并显示结果

这很好用。但是现在我需要对另一种类似的URL执行相同的操作,因此我尝试了以下方法:

RewriteEngine on
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-l
RewriteRule ^(.*)$ user.php/$1
RewriteRule ^(.*)$ collection.php/$1

我还尝试了重写规则末尾的各种标志,如
[C]
[N]
[L]
,但它们似乎都不起作用,结果也不尽相同,从内部服务器错误到使用user.php文件的两种URL,而不是使用适当的URL文件的每种URL。

最终找到了答案。如果有人有相同的问题,这是处理这两种情况的正确方法:

RewriteEngine on
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-l
RewriteRule ^profile/(.*)$ user.php/$1
RewriteRule ^collection/(.*)$ collection.php/$1