我已经用一些重写规则完成了这个 htaccess 文件,但问题是,我能够访问服务器上的单个 .php 文件以及直接访问诸如 domain.com/admin/change_profile.php 之类的部分
这是正常的吗?我认为这不应该发生。如何执行此 htaccess 文件,以便只有在满足规则时才会将我带到该文件夹?简而言之:禁止直接访问 domain.com/admin/change_profile.php 或 domain.com/admin/ 或其他任何内容。
RewriteEngine on
RewriteRule ^/?(us|uk|eu)/?$ test.php [NC,L] #Country
RewriteRule ^/?(us|uk|eu)/(profile)/([a-zA-z0-9]+)/?$ test.php [NC,L] #Country - Profile
这里:
http://localhost/us -> Works
http://localhost/us/profile/companyname -> Works
http://localhost/admin -> Works too! But admin is not in the set of rules above. admin is a folder inside htdocs.
不应该工作,因为它不是 (us|uk|eu) 规则的一部分。注意:它是一个在 htdocs 中包含 php 文件的文件夹。这是如何发生的以及如何克服它。