【发布时间】:2015-02-22 19:19:22
【问题描述】:
我有这个 隐藏 .php 扩展名的 .htaccess 代码。效果很好。
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.+)$ $1.php
我现在尝试在 URL 中存在 .php 时产生 404 Not Found 错误,因为我想强制人们使用没有 .php 的 URL。这是我现在拥有的代码:
RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteRule ^$ /home.php [QSA,L]
RewriteRule ^(.+)\.php - [L,R=404]
我是 .htaccess 的新手,但每当我转到 .php 页面时,上面的代码都会导致 404 错误,即使 .php 不在 URL 中也是如此。
我必须进行哪些调整才能使其仅在 .php 位于 URL 中时导致 404 Not Found?
【问题讨论】:
-
.htaccess 样式文件永远不能“隐藏”某些东西。它仅适用于 incoming 请求。这取决于您发送 URL 中可见内容的页面。如果您不发送包含 .php 后缀的 URL,那么问题出在哪里?为什么要阻止其他 URL?只要转发他们,每个人都很高兴!否则你会让用户感到沮丧。