htAccess 重写引擎不会重定向


htaccess rewrite engine doesnt redirect

你好,这是我的访问:

RewriteRule ^[a-zA-Z]*$ /index.php?a=profile&u=$1 [L]
RewriteRule ^([a-zA-Z0-9_-]+)/home$ /index.php?u=$1 [L]

RewriteRule ^([a-zA-Z0-9_-]+)/blog$ /blog.php?u=$1 [L]
RewriteRule ^([a-zA-Z0-9_-]+)/contact$ /contact.php?u=$1 [L]
RewriteRule ^([a-zA-Z0-9_-]+)/portfolio$ /portfolio.php?u=$1 [L]
RewriteRule ^([a-zA-Z0-9_-]+)/page_([a-zA-Z0-9_-]+)$  /page.php?id=$2&u=$1 [L]
RewriteRule ^([a-zA-Z0-9_-]+)/post_([a-zA-Z0-9_-]+)$ /post.php?id=$2&u=$1 [L]
RewriteRule ^([a-zA-Z0-9_-]+)/blog_([a-zA-Z0-9_-]+)$ /blog.php?id=$2&u=$1 [L]
RewriteRule ^([a-zA-Z0-9_-]+)/project_([a-zA-Z0-9_-]+)$ /project.php?id=$2&u=$1 [L]

除了第一行之外,所有线路都有效,我想我可能需要使用条件?如果有人去 site.com/john,以下是我试图做的事情,例如他们将被发送到/index.php?a=profile&u=$1在这种情况下是用户名= John的配置文件。但是发生的事情是它会让我回到索引.php

我认为你应该删除[L]

RewriteRule ^([a-zA-Z]*)$ /index.php?a=profile&u=$1

[L] 标志会导致mod_rewrite停止处理规则集。在 大多数上下文,这意味着如果规则匹配,则没有进一步的规则 将被处理。这对应于 Perl 中的最后一个命令,或者 C 中的 break 命令。使用此标志指示当前 应立即应用规则,而不考虑进一步的规则。