2013-07-28 28 views
0

你好,这是我的htaccess:除了第一个,我想我可能需要使用条件htaccess的重写引擎犯规重定向

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的配置文件。但发生的事情是它给我发回的index.php

+0

它缺少一个'/' – DevZer0

+0

现在好了,现在发生的事情是...它跳过其他行。所以它重定向到/ a = profile&u = $ 1,但其他指令被忽略 – cppit

回答

1

,我认为你应该删除[L]

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

的[L]标志使mod_rewrite的停止处理规则集。在大多数情况下,这意味着如果规则匹配,则不会处理其他规则 。这对应于Perl中的最后一个命令,或者与C中的break命令对应。使用此标志来指示当前应该立即应用 规则而不考虑其他规则。

+0

跳过该行下的其他指令。 – cppit

+0

迷人。谢谢你,先生!! – cppit

+0

欢迎:) –