mod_rewrite规则冲突

时间:2013-12-28 20:52:53

标签: php apache .htaccess mod-rewrite

我正在使用mod_rewrite,并且总是使用新网址加载内容中的一些jquery / AJAX: / user / register /

RewriteRule ^user/register/?$ register.php [NC,L,QSA]

但我也想拒绝[或重定向]让某人直接转到 register.php 文件。 我试图在下面添加这个,但它打破了最重要的规则。

RewriteRule ^register\.php$ - [F,L]

我如何在规则中做到这两点?

1 个答案:

答案 0 :(得分:1)

RewriteRule ^register\.php$ - [F,L]

这本身不会起作用,因为你的其他规则会将URI重写为register.php,然后当重写引擎循环时,会应用此规则并最终返回403。您需要检查实际的请求本身:

RewriteCond %{THE_REQUEST} /register\.php($|\ |\?)
RewriteRule ^ - [F,L]