如何使用.htaccess显示错误消息如果url不正确?

时间:2016-07-27 07:15:10

标签: apache .htaccess url mod-rewrite

好吧,我正在使用.htaccess规则来编辑我的网站网址结构。现在,我有以下网址:

http://localhost/aponit/dev/zones

此网址用于Regions.php页面以编辑表单数据。点击编辑链接后,它将转到此链接:

http://localhost/aponit/dev/zones/update/55

此链接在update.php页面上打开。

现在,如果我从此网址中删除以下部分

/55 or date/55

然后它显示错误消息,并显示相应的错误页面。那很好。

但是,如果我从网址中删除update/55,那么网址就是这样:

http://localhost/aponit/dev/zones/ (note the forward slash at the end)
然后它调用了zones.php页面和样式表,这是

但是我想显示一个错误页面,例如:not-found.php页面。我怎么能用.htaccess做到这一点?

我的.htaccess规则:

Options -MultiViews
ErrorDocument 404 http://localhost/aponit/dev/not-found.php
ErrorDocument 500 http://localhost/aponit/dev/404.php
RewriteEngine on

RewriteRule ^(?:zones/)?update/(\w+)/?$ update.php?z=$1 [L,QSA,NC]

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.+?)/?$ $1.php [L]

1 个答案:

答案 0 :(得分:1)

您可以使用:

Options -MultiViews
ErrorDocument 404 /aponit/dev/not-found.php
ErrorDocument 500 http://localhost/aponit/dev/404.php
RewriteEngine on

RewriteRule ^zones/$ - [NC,L,R=404]

RewriteRule ^(?:zones/)?update/(\w+)/?$ update.php?z=$1 [L,QSA,NC]

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.+?)/?$ $1.php [L]