.htaccess不排除带有规则的子目录

时间:2017-12-26 16:07:44

标签: php apache .htaccess mod-rewrite

我问的是关于我的.htaccess的问题。我会很快解释我想要完成什么,以及它是如何工作的。

我正在使用$ _GET目录作为页面的规则。

https://example.com/test?p=page1 = https://example.com/test/page1
我在这个/ test /目录中也有一个名为“account”的目录,但当我尝试访问该页面时。

https://example.com/test/account它将我重定向到https://example.com/test/account/?p=account
注意(https://example.com/test/account/工作正常)

我已尝试通过关注其他StackOverflow帖子上的方法来禁用它,但这些方法都不起作用。

我的规则是:

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

我有什么方法可以配置此规则以排除“帐户”和“管理员”等字样我已经尝试将重写引擎关闭.htaccess但这不起作用,因为.htaccess认为/帐户是一个页面而不是目录。

我尝试了其他方法来停止具有相同问题的目录。它不认为/ account是一个目录。它认为这是一个页面。

任何帮助都会很棒!

1 个答案:

答案 0 :(得分:0)

在上面添加此行,以排除帐户或管理员的请求

t

将其置于当前规则之上,并应排除使用包含这些条款的请求规则。

这是我使用的(有很多年),做你想做的事情:

**我很确定我可以将它减少到一组表达式,但我不是那么好。没有第二个我想念{{ "My string"|t }} 而没有第一个我想念RewriteCond %{REQUEST_URI} !(account|admin)$ [NC]

domain.tld