htaccess:难以理解RewriteCond的URL GET参数?

时间:2016-05-25 09:42:54

标签: .htaccess

我会尽力解释,但我不完全明白我在做什么。我用Google搜索过,并阅读了一些信息,但此时我需要有人给我一个屁股,并告诉我我做错了什么。

这是一个htaccess脚本,可将?page=home&subcat=about&category=me更改为/home/about/me/

RewriteRule ^([a-zA-Z0-9]+)/?$ index.php?page=$1 [NC]
RewriteRule ^([a-zA-Z0-9]+)/([a-zA-Z0-9]+)/?$ index.php?category=$1&page=$2 [NC]
RewriteRule ^([a-zA-Z0-9]+)/([a-zA-Z0-9]+)/([a-zA-Z0-9]+)/?$ index.php?category=$1&subcat=$2&page=$3 [L,NC]

(这就像它应该的那样工作)

现在,我有一个子域名,我们称之为sublevel.mywebsite.com,指向mywebsite.com/myfolder

如果我转到sublevel.mywebsite.com,它将表现为/myfolder/ ?page=myfolder - 我不希望这个用于子域,仅适用于普通网站。

我尝试在前面添加重定向条件,如下所示:

RewriteCond %{REQUEST_URI} !^/myfolder$

但是,它似乎没有太大变化。

我不明白我还能在这做什么,但感谢任何帮助?如果可能的话,我还会对发生的事情做一个小小的解释。

1 个答案:

答案 0 :(得分:1)

这是因为您正在重写对/index.php的所有请求,要排除子域重定向,请在RewriteRules上添加以下规则:

RewriteCond %{HTTP_HOST} ^sub\.domain\.com$
RewriteRule ^ - [L]