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;
确保你启用了mod重写(你可以通过在httpd.conf文件中找到下面的行来实现这一点(通常在/conf/目录中这可能是不同的,如果你使用共享主机并从行的开头删除分号)
;LoadModule rewrite_module modules/mod_rewrite.so
找到www root的相关目录标记并更改AllowOverride None为AllowOverride All
在根目录中创建.htaccess文件(如果不存在)
你需要插入看起来像这样的东西 ;
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.