404找不到我的.htaccess页面

Eri*_*c T 4 php http-status-code-404

我在服务器下面的.htaccess下面找不到页面规则,但它似乎不起作用.任何的想法?

RewriteEngine on
RewriteRule ^article_detail/([a-zA-Z0-9_-]+)/([0-9]+)\.html$ article_detail.php?article_det=$2
Options +FollowSymLinks
ErrorDocument 404 http://www.example.com/main/404_not_found.html


# compress text, HTML, JavaScript, CSS, and XML

<IfModule mod_ext_filter.c>
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE application/x-javascript
# remove browser bugs
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4\.0[678] no-gzip
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
</IfModule>
Run Code Online (Sandbox Code Playgroud)

小智 20

我假设您使用的是Apache而不是IIS;

  1. 确保你启用了mod重写(你可以通过在httpd.conf文件中找到下面的行来实现这一点(通常在/conf/目录中这可能是不同的,如果你使用共享主机并从行的开头删除分号)

    ;LoadModule rewrite_module modules/mod_rewrite.so

  2. 找到www root的相关目录标记并更改AllowOverride NoneAllowOverride All

  3. 在根目录中创建.htaccess文件(如果不存在)

  4. 你需要插入看起来像这样的东西 ;

    ErrorDocument 500 /errordocs/500.html

    ErrorDocument 404 /errordocs/404.html

    ErrorDocument 401 /errordocs/401.html

    ErrorDocument 403 /errordocs/403.html

    • 而不是ErrorDocument 404 /errordocs/404.html你也可以做ErrorDocument 404 http://www.yourdomain.com/errordocs/404.html甚至只是显示一个简单的消息ErrorDocument 404 "Sorry can't allow you access today"

    • 如果您遇到任何问题,Apache手册(ErrorDocument Directive)应该会帮助您进一步解决问题.

在你的情况下确保AllowOverride All打开,你.htaccess在root中编辑文件,并确保你可以点击错误页面的URL,如果你指定的URL没有任何内容,Apache将返回默认的404.