Bookmark and Share

Lee's 程序人生

HTML CSS Javascript XML AJAX ATLAS C# C++ 数据结构 软件工程 设计模式 asp.net Java 数字图象处理 Sql 数据库
  博客园  :: 首页  :: 新随笔  :: 联系 :: 管理

Zend Framework 中 htaccess 的标准配置

Posted on 2010-02-05 19:46  analyzer  阅读(1876)  评论(0编辑  收藏  举报

如何配置 .htaccess 文件一直是困扰初学者的难题之一,我在这里特意总结了一下,希望能给初学者启示:

 

以下有关 .htaccess 的配置兼容因虚拟主机而无权修改 apache 设置的情况。

 

# Php settings
# Php 配置
# ====================
<IfModule php5_module>
 
    # Adjust memory limit
    # 内存限制
    # ========================
    php_value memory_limit 64M
 
 
    # Adjust exec time to prevent overtime running
    # 最大运行时间
    # ================================
    php_value max_execution_time 18000
 
 
    # Make sure the default timezone is set
    # Can also be set within application using date_default_timezone_set
    # 默认时区
    # =====================================
    php_value date.timezone "Asia/Shanghai"
 
 
    # Short tag for clean view scripts which is still not recommend
    # Because of the xml issue
    # 关闭短标签,防止与 xml 产生兼容性问题
    # ==========================
    php_value short_open_tag off
 
 
    # Default charset is utf-8 because of multi languages supportting
    # 默认字符集为 utf-8
    # ===============================
    php_value default_charset "utf-8"
 
 
    # To report E_ALL|E_STRICT and show all errors
    # 默认显示所有错误,即 E_ALL|E_STRICT
    # ==============================
    php_value error_reporting "8191"
 
 
    # Disable register globals which means nothing in php6
    # 禁止注册超全局变量
    # ===========================
    php_flag register_globals off
 
 
    # Disable magic quotes which means nothing in php6
    # 禁止自动转义字符串
    # ===========================
    php_flag magic_quotes_gpc off
 
 
    # Disable automatic session start but handled by program
    # e.g. Zend_Session::start()
    # 禁止 session 自动启动,我们交由程序执行,如 Zend_Session::start()
    # =============================
    php_flag session.auto_start off
 
 
    # Turn off compatibility with PHP4
    # To avoid the problem when dealing with objects
    # 关闭向上 (php4) 兼容,以防止处理对象时发生问题
    # ======================================
    php_flag zend.ze1_compatibility_mode Off
 
 
    # Gzip output
    # Gzip 压缩输出
    # =======================================
    php_flag zlib.output_compression on
    php_value zlib.output_compression_level 9
 
 
    # Disable user agent verification to not break multiple image upload
    # 关闭用户代理认证,使得多图片上传等功能不会中断
    # ==================================
    php_flag suhosin.session.cryptua off
 
 
    # Output buffering
    # 缓存输出
    # =============================
    php_value output_buffering 4096
 
</IfModule>
 
 
 
# Mime type
# Mime 类型
# ====================
<IfModule mime_module>
 
    # Add javascript, php and phtml file type if needed
    # 添加 javascript,php 和 phmtl 等文件类型
    # =========================================
    AddType application/x-javascript .js
    AddType application/x-httpd-php .php .phtml
 
 
    # For 1and1 hosting issue, we use php5 for all
    # 对于 1and1 主机,我们统一用 php5
    # ==========================
    #AddType x-mapp-php5 .php
    #AddHandler x-mapp-php5 .php
 
 
    # For fastcgi mode
    # Fastcgi 模式兼容
    # =========================================
    #Action php5-cgi /cgi-bin/php5-cgi
    #AddHandler php5-cgi .php
    #cgi.fix_pathinfo = 1
 
    # Default character encoding UTF-8
    # 默认字符集为 utf-8
    # =====================
    AddDefaultCharset UTF-8
 
 
    # No ETags for performance optimize
    # 禁止文件 etag 以优化性能
    # ===========
    FileETag none
 
</IfModule>
 
 
 
# Security scan
# 安全扫描
# =======================
<IfModule mod_security.c>
 
    # Disable POST processing to not break multiple image upload
    # 禁止对 POST 数据进行安全扫描,使不中断多文件上传等功能
    # ===================
    SecFilterEngine Off
    SecFilterScanPOST Off
 
</IfModule>
 
 
 
# Expires by type
# Expires 期限控制
# ======================
<IfModule mod_expires.c>
 
    # Add further expires for resources
    # 为所有资源设置过时期限
    # ===========================================================
    ExpiresActive On
    ExpiresDefault "access plus 1 year"
    #ExpiresByType text/css "access plus 1 month"
    #ExpiresByType image/gif "access plus 1 month"
    #ExpiresByType image/jpeg "access plus 1 month"
    #ExpiresByType image/png "access plus 1 month"
    #ExpiresByType application/x-javascript "access plus 1 month"
 
</IfModule>
 
 
 
# Compress by type
# Compress 根据类型进行压缩过滤
# ======================
<IfModule mod_deflate.c>
 
    # Default filter : deflate
    # 默认过滤器 Deflate
    # =====================
    SetOutputFilter DEFLATE
 
 
    # Netscape 4.x has some problems...
    # Netscape 4.x 的一些问题
    # =========================================
    BrowserMatch ^Mozilla/4 gzip-only-text/html
 
 
    # Netscape 4.06-4.08 have some more problems
    # Netscape 4.06-4.08 有更多问题
    # =====================================
    BrowserMatch ^Mozilla/4.0[678] no-gzip
 
 
    # MSIE masquerades as Netscape, but it is fine
    # MSIE 的问题
    # ===============================================
    BrowserMatch bMSIE !no-gzip !gzip-only-text/html
 
 
    # Do not compress images
    # 不压缩图片
    # ===============================================================
    SetEnvIfNoCase Request_URI .(?:gif|jpe?g|png)$ no-gzip dont-vary
 
 
    # The compress level 1(lowest)-9(highest)
    # 压缩级别 1(最低) - 9(最高)
    # ====================================================
    #DeflateCompressionLevel 9
    AddOutputFilterByType DEFLATE text/plain
    AddOutputFilterByType DEFLATE text/html
    AddOutputFilterByType DEFLATE text/xml
    AddOutputFilterByType DEFLATE text/css
    AddOutputFilterByType DEFLATE application/xhtml+xml
    AddOutputFilterByType DEFLATE application/xml
    AddOutputFilterByType DEFLATE application/rss+xml
    AddOutputFilterByType DEFLATE application/atom_xml
    AddOutputFilterByType DEFLATE application/x-javascript
    AddOutputFilterByType DEFLATE application/x-httpd-php
 
 
    # Make sure proxies do not deliver the wrong content
    # 确保代理不会重复发送错误数据
    # ======================
    <IfModule mod_headers.c>
        Header append Vary User-Agent env=!dont-vary
    </IfModule>
 
</IfModule>
 
 
 
# Make HTTPS env vars available for CGI mode
# 使得环境变量在 cgi 模式下有效
# ==================
<IfModule mod_ssl.c>
    SSLOptions StdEnvVars
</IfModule>
 
 
 
# Directory and index file
# 文件夹及索引
# ===================
<IfModule dir_module>
 
    # By default allow all access
    # 默认所有人都可以访问
    # ==========================================
    Options -Indexes -MultiViews +FollowSymLinks
    Order allow,deny
    Allow from all
 
    # Directory default index
    # 文件夹默认索引文件
    # ===========================================
    DirectoryIndex index.php index.html index.htm
 
</IfModule>
 
 
 
# Url rewrite
# Url 重写
# ======================
<IfModule mod_rewrite.c>
 
    # Rewrite enable
    # Url 重写功能开启
    # ==============
    RewriteEngine On
 
 
    # Rewrite base path to your site
    # Url 重写基本路径
    # ===========
    RewriteBase /
 
 
    # Forbidden access to htaccess file
    # 禁止访问 .htaccess 文件
    # ============================
    RewriteRule ^.htaccess$ - [F]
 
 
    # Url canonicalization for SEO
    # Url 强制重定向
    # =====================================================
    RewriteCond %{HTTP_HOST} ^www.kimbs-local.info [NC]
    RewriteRule ^(.*)$ http://kimbs-local.info/$1 [L,R=301]
    RewriteCond %{HTTP_HOST} ^www.kimbs.info [NC]
    RewriteRule ^(.*)$ http://kimbs.info/$1 [L,R=301]
 
 
    # Rewrite for index if request is empty or did not mentioned before
    # 如果请求不存在,或者未预先定义,则重定向到 index.php
    # ================================================================
    RewriteCond %{REQUEST_URI} =""
    RewriteCond %{REQUEST_URI} !^/(library/dojo)/
    RewriteCond %{REQUEST_URI} !^/(library/fckeditor)/
    RewriteCond %{REQUEST_URI} !^/(library/fckeditorPlugins)/
    RewriteCond %{REQUEST_URI} !^/(library/syntaxhighlighter_2.0.320)/
    RewriteRule ^.*$ /public/index.php [NC,L]
 
 
    # Rewrite for public if request is not the resource under public or did not mentioned before
    # 如果请求不是一个可用资源,或者未预先定义,则重定向到 public/ 资源目录
    # ================================================================
    RewriteCond %{REQUEST_URI} !^/public/.*$
    RewriteCond %{REQUEST_URI} !^/(library/dojo)/
    RewriteCond %{REQUEST_URI} !^/(library/fckeditor)/
    RewriteCond %{REQUEST_URI} !^/(library/fckeditorPlugins)/
    RewriteCond %{REQUEST_URI} !^/(library/syntaxhighlighter_2.0.320)/
    RewriteRule ^(.*)$ /public/$1
 
 
    # Never rewrite for existing files, directories and links
    # 从不为确实存在的文件,文件夹和文件链接进行重定向
    # ==============================================
    RewriteCond %{REQUEST_FILENAME} -s [OR]
    RewriteCond %{REQUEST_FILENAME} -l [OR]
    RewriteCond %{REQUEST_FILENAME} -d
    RewriteRule ^.*$ - [NC,L]
    RewriteRule ^public/.*$ /public/index.php [NC,L]
 
</IfModule>

 

转自:http://kbs.kimbs.cn/blog/list/post/3/title/htaccess-in-zend-framework 

我要啦免费统计