2015-03-02 91 views
1

我想重定向的.htaccess不重定向特定的词

  • domain.com/blabla到domain.com/index.php?q=blabla
  • domain.com/blabla/2域。 ?COM/index.php的q =布拉布拉& p = 2

我用这个:

RewriteRule ^([a-zA-Z0-9\-]+)/([0-9]+)$ index.php?q=$1&p=$2 [L,NC] 
RewriteRule ^([a-zA-Z0-9\-]+)$ index.php?q=$1 [L,NC] 

卜我需要不重定向一些WO RDS。例如:

重定向到domain.com/user是domain.com/index.php?q=user OK

但它重定向到domain.com/admin domain.com/admin/?q=admin

我不希望发生这种情况。顺便说一句,有一个名为“admin”的文件夹。我谈论的“具体词”是文件夹。但是请注意,这些话不应该是文件夹(如果有上htaccess的任何改变,我不知道)

回答

0

你可以拥有这些规则之前排除规则:

# ignore these URIs 
RewriteRule ^(admin|something)(/|$) - [L,NC] 

RewriteRule ^([a-zA-Z0-9-]+)/([0-9]+)$ index.php?q=$1&p=$2 [L,QSA] 
RewriteRule ^([a-zA-Z0-9-]+)$ index.php?q=$1 [L,QSA] 
+0

1,何必当初你将它们改为QSA?第二,我不知道发生了什么,但它只适用于第二个字。这没有意义。我在本地与wtw btw。 – Diga 2015-03-02 21:17:36

+0

'NC'不需要,因为您的正则表达式中已经有'A-Za-z'。 'QSA'用于保存原始查询字符串。哪个网址不起作用? – anubhava 2015-03-02 21:19:10

+0

(根据您的代码)domain.com/admin仍然会重定向。 domain.com/something不是。我不知道它一定是关于服务器或浏览器缓存等。我会重新启动后再试。 – Diga 2015-03-02 21:21:43