当我在.htaccess中放置带有绝对路径的自定义页面时出现错误404

时间:2016-09-05 17:31:58

标签: apache .htaccess

这是我的.htaccess

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)/?$ index.php?url=$1 [NC,L]

ErrorDocument 100 http://localhost/user/error
ErrorDocument 101 http://localhost/user/error
ErrorDocument 200 http://localhost/user/error
ErrorDocument 201 http://localhost/user/error
ErrorDocument 202 http://localhost/user/error
ErrorDocument 203 http://localhost/user/error
ErrorDocument 204 http://localhost/user/error
ErrorDocument 205 http://localhost/user/error
ErrorDocument 206 http://localhost/user/error
ErrorDocument 300 http://localhost/user/error
ErrorDocument 301 http://localhost/user/error
ErrorDocument 302 http://localhost/user/error
ErrorDocument 303 http://localhost/user/error
ErrorDocument 304 http://localhost/user/error
ErrorDocument 305 http://localhost/user/error
ErrorDocument 307 http://localhost/user/error
ErrorDocument 400 http://localhost/user/error
ErrorDocument 401 http://localhost/user/error
ErrorDocument 402 http://localhost/user/error
ErrorDocument 403 http://localhost/user/error
ErrorDocument 404 http://localhost/user/error
ErrorDocument 405 http://localhost/user/error
ErrorDocument 406 http://localhost/user/error
ErrorDocument 407 http://localhost/user/error
ErrorDocument 408 http://localhost/user/error
ErrorDocument 409 http://localhost/user/error
ErrorDocument 410 http://localhost/user/error
ErrorDocument 411 http://localhost/user/error
ErrorDocument 412 http://localhost/user/error
ErrorDocument 413 http://localhost/user/error
ErrorDocument 414 http://localhost/user/error
ErrorDocument 415 http://localhost/user/error
ErrorDocument 416 http://localhost/user/error
ErrorDocument 417 http://localhost/user/error
ErrorDocument 500 http://localhost/user/error
ErrorDocument 501 http://localhost/user/error
ErrorDocument 502 http://localhost/user/error
ErrorDocument 503 http://localhost/user/error
ErrorDocument 504 http://localhost/user/error
ErrorDocument 505 http://localhost/user/error

如果我输入:http://localhost/usuarios/一切都很完美,但当我输入http://localhost/usuarios时会显示错误页面,因为我删除了/

当我删除离开ErrorDocument 404 /error的绝对路径时,我没有任何错误,问题是我无法识别没有绝对路径的文件error.tpl错误,因为此索引被调用到另一个文件夹。 / p>

问题:

  1. 有没有办法保存40次ErrorDocument xxx http://localhost/user/error
  2. 我想避免在攀爬时获取和修改路线 项目到真实的服务器。这就是我不想使用的原因 完整路径。

1 个答案:

答案 0 :(得分:1)

  1. 我不知道有任何方法可以将一条指令应用于多个状态代码。 This answer也说这是不可能的。

  2. 您可以使用the documentation(大胆矿)中显示的本地网址:

      

    ErrorDocument指令的语法是:

    ErrorDocument <3-digit-code> <action>
    
         

    将操作视为:

         
        
    1. 要重定向到的本地网址(如果操作以“/")开头。
    2.   
    3. 要重定向到的外部网址(如果操作是有效的网址)。
    4.   
    5. 要显示的文本(如果不是上述内容)。如果文本由多个单词组成,则必须用引号(“)括起来。
    6.   

    还给出了以下示例:

    ErrorDocument 500 /cgi-bin/crash-recover
    
  3. 最后,你在评论中提问

      

    仅显示状态4xx和5xx的错误页面或我错了是正确的吗?

    这是对的。同一页文档说

      

    可以为指定为错误条件的任何HTTP状态代码定义自定义错误响应 - 即任何4xx或5xx状态。