.htaccess 从重写规则中删除R标志会使其停止工作

.htaccess 从重写规则中删除R标志会使其停止工作,.htaccess,mod-rewrite,.htaccess,Mod Rewrite,我有一个相当简单的htaccess重写规则: RewriteRule ^portfolio/([^/]+)/?$ /portfolio-categories/$1/ [R,L] 这个很好用。然而,如果我去掉R,我会得到一个404。大概是重定向到不同的URL,但用R我看不到在哪里 我认为效果应该是相同的,至少在返回的页面方面是一样的,显然R标志添加了一个额外的HTTP请求 我怎样才能解决这个问题?我如何调试这个 编辑:以下是我的其他规则。我认为他们不应该影响这件事 RewriteEngine O

我有一个相当简单的htaccess重写规则:

RewriteRule ^portfolio/([^/]+)/?$ /portfolio-categories/$1/ [R,L]
这个很好用。然而,如果我去掉R,我会得到一个404。大概是重定向到不同的URL,但用R我看不到在哪里

我认为效果应该是相同的,至少在返回的页面方面是一样的,显然R标志添加了一个额外的HTTP请求

我怎样才能解决这个问题?我如何调试这个

编辑:以下是我的其他规则。我认为他们不应该影响这件事

RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^portfolio/([^/]+)/?$ /portfolio-categories/$1/ [L]
RewriteRule . /index.php [L]

你还有其他规定吗?特别是那些会影响/投资组合类别/?我认为不会影响这一点的。请参阅我的编辑。如果您正在使用某种框架,则需要通过框架来完成此操作。如果您在内部重写,那么框架仍然会看到公文包,因此它不知道如何处理它。为什么?这不是违背了修改的目的吗?