Apache mod_rewrite:如何“列入白名单”网址?

时间:2018-01-08 18:38:02

标签: apache .htaccess mod-rewrite url-rewriting uri

我正在使用mod_rewrite来获得更好的网址。因此,目前有两种方法可以访问页面:

访问该网站的唯一方式应该是mod_rewrite。换句话说,我想把某些uris“白名单”并阻止每一个不同的uri。

我想过有一个带有“END”标志的RewriteRules列表,所以如果上述规则都不匹配,最后一个规则将阻止请求。这有效,但它也阻止我的index.php网站。此外,这并不是“感觉”最好的方式。

1 个答案:

答案 0 :(得分:1)

可以使用RewriteCond重定时某些页面,RewriteRule可以捕获所有回复404错误。

# if the request uri is not /mypage.php and /otherpage.php
RewriteCond %{REQUEST_URI} !^/(mypage|otherpage)\.php

# if the request uri is not /startpage
RewriteCond %{REQUEST_URI} !^/startpage

# response 404 error
RewriteRule ^ - [R=404,L]