是否可以使用 .htaccess 来阻止页面被提供,除非它是通过重写规则?
例如,我有干净的 URLS,所以调用 xyz.com/hi
服务于 xyz.com/hi.php
。
如果被调用的 url = xyz.com/hi.php
页面 opps.html
得到服务,但正常的 xyz .com/hi
仍然有效。
谢谢艺术
DirectoryIndex h1.php
Options +FollowSymLinks
RewriteEngine on
RewriteBase /
# stop calling page by ext
RewriteRule .*\.(php)$ opps.html [L]
# main start page
RewriteRule ^hi$ hi.php [L]
最佳答案
您需要添加一个条件来防止 php 扩展被重写为 oops.html
。如果你想阻止对 php 页面的实际请求,你可以在 RewriteCond
中使用 %{THE_REQUEST}
变量:
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /.*\.php\
RewriteRule .*\.(php)$ opps.html [L]
这样,内部重写的以 .php
结尾的 URI 将不会被重写为 oops.html
。
关于php - 使用 htaccess 来防止调用除 RewriteRule 之外的页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11271791/