如何在请求以' .php'结尾的网址时重定向到错误页面?

时间:2016-07-30 06:47:16

标签: php apache .htaccess redirect mod-rewrite

我创建了一个.htaccess文件,以便用户可以请求没有php扩展名的页面,并在请求以' .php'结尾的网址时强制重定向到自定义错误页面。像这样:

mysite.com/home - >将提供home.php

mysite.com/home.php - >将提供禁止的自定义403

我的问题是,当我请求mysite.com/home.php时,home.php会被提供,而不会出现任何错误。

这是我的.htaccess文件:

RewriteEngine On
RewriteBase /

# Exit the rule chain when showing error pages
RewriteRule ^error/403.php$ - [L]
RewriteRule ^error/404.php$ - [L]

# Append '.php' to every request 
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^ %{REQUEST_FILENAME}.php [L]

# Show 404 error page when original request ends with '.php'
RewriteCond %{THE_REQUEST} \.php
RewriteRule \.php/.*$ - [L,R=404]

# Custom error 
ErrorDocument 403 /error/403
ErrorDocument 404 /error/404

2 个答案:

答案 0 :(得分:0)

将此添加到.htaccess文件

<Files ~ "\.php$">
  Order allow,deny
  Deny from all
</Files>

答案 1 :(得分:0)

我将WITH todelete As ( select em.*, row_number() over (partition by emp_num, [from_date],[to_date],[ req_ser], [ req_year] order by (select null)) as cnt from empmission em ) DELETE FROM todelete WHERE cnt > 2; 更改为\.php/.*$\.php.*$,现在正在使用,

在这种情况下,我选择了第一个,因为API支持,例如\.php$(通过访问mysite.com/api/data1/data2/)。