2013-01-16 75 views
1

我試圖做一個URL重寫,mod_rewrite啓用,我敢肯定我的.htaccess文件很好,從來沒有碰過apache2.conf,我的httpd.conf是空的,並在網站 - 我的默認文件已在第7行上從AllowOverride None修改爲AllowOverride All。.htaccess不能在Apache2上工作

我的.htaccess文件仍然不起作用。

.htaccess文件

############################################ 
## uncomment these lines for CGI mode 
## make sure to specify the correct cgi php binary file name 
## it might be /cgi-bin/php-cgi 

# Action php5-cgi /cgi-bin/php5-cgi 
# AddHandler php5-cgi .php 

############################################ 
## GoDaddy specific options 

# Options -MultiViews 

## you might also need to add this line to php.ini 
##  cgi.fix_pathinfo = 1 
## if it still doesn't work, rename php.ini to php5.ini 

############################################ 
## this line is specific for 1and1 hosting 

    #AddType x-mapp-php5 .php 
    #AddHandler x-mapp-php5 .php 

############################################ 
## default index file 

    DirectoryIndex index.php 

<IfModule mod_php5.c> 

############################################ 
## adjust memory limit 

# php_value memory_limit 64M 
    php_value memory_limit 256M 
    php_value max_execution_time 18000 

############################################ 
## disable magic quotes for php request vars 

    php_flag magic_quotes_gpc off 

############################################ 
## disable automatic session start 
## before autoload was initialized 

    php_flag session.auto_start off 

############################################ 
## enable resulting html compression 

    #php_flag zlib.output_compression on 

########################################### 
# disable user agent verification to not break multiple image upload 

    php_flag suhosin.session.cryptua off 

########################################### 
# turn off compatibility with PHP4 when dealing with objects 

    php_flag zend.ze1_compatibility_mode Off 

</IfModule> 

<IfModule mod_security.c> 
########################################### 
# disable POST processing to not break multiple image upload 

    SecFilterEngine Off 
    SecFilterScanPOST Off 
</IfModule> 

<IfModule mod_deflate.c> 

############################################ 
## enable apache served files compression 
## http://developer.yahoo.com/performance/rules.html#gzip 

    # Insert filter on all content 
    ###SetOutputFilter DEFLATE 
    # Insert filter on selected content types only 
    #AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css text/javascript 

    # Netscape 4.x has some problems... 
    #BrowserMatch ^Mozilla/4 gzip-only-text/html 

    # Netscape 4.06-4.08 have some more problems 
    #BrowserMatch ^Mozilla/4\.0[678] no-gzip 

    # MSIE masquerades as Netscape, but it is fine 
    #BrowserMatch \bMSIE !no-gzip !gzip-only-text/html 

    # Don't compress images 
    #SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png)$ no-gzip dont-vary 

    # Make sure proxies don't deliver the wrong content 
    #Header append Vary User-Agent env=!dont-vary 

</IfModule> 

<IfModule mod_ssl.c> 

############################################ 
## make HTTPS env vars available for CGI mode 

    SSLOptions StdEnvVars 

</IfModule> 

<IfModule mod_rewrite.c> 

############################################ 
## enable rewrites 

    Options +FollowSymLinks 
    RewriteEngine on 

############################################ 
## you can put here your magento root folder 
## path relative to web root 

    #RewriteBase /magento/ 

############################################ 
## workaround for HTTP authorization 
## in CGI environment 

    RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] 

############################################ 
## always send 404 on missing files in these folders 

    RewriteCond %{REQUEST_URI} !^/(media|skin|js)/ 

############################################ 
## never rewrite for existing files, directories and links 

    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteCond %{REQUEST_FILENAME} !-l 

############################################ 
## rewrite everything else to index.php 

    RewriteRule .* index.php [L] 

</IfModule> 


############################################ 
## Prevent character encoding issues from server overrides 
## If you still have problems, use the second line instead 

    AddDefaultCharset Off 
    #AddDefaultCharset UTF-8 

<IfModule mod_expires.c> 

############################################ 
## Add default Expires header 
## http://developer.yahoo.com/performance/rules.html#expires 

    ExpiresDefault "access plus 1 year" 

</IfModule> 

############################################ 
## By default allow all access 

    Order allow,deny 
    Allow from all 

########################################### 
## Deny access to release notes to prevent disclosure of the installed Magento version 

    <Files RELEASE_NOTES.txt> 
     order allow,deny 
     deny from all 
    </Files> 

############################################ 
## If running in cluster environment, uncomment this 
## http://developer.yahoo.com/performance/rules.html#etags 

    #FileETag none 

apache2.conf

# 
# Based upon the NCSA server configuration files originally by Rob McCool. 
# 
# This is the main Apache server configuration file. It contains the 
# configuration directives that give the server its instructions. 
# See http://httpd.apache.org/docs/2.2/ for detailed information about 
# the directives. 
# 
# Do NOT simply read the instructions in here without understanding 
# what they do. They're here only as hints or reminders. If you are unsure 
# consult the online docs. You have been warned. 
# 
# The configuration directives are grouped into three basic sections: 
# 1. Directives that control the operation of the Apache server process as a 
#  whole (the 'global environment'). 
# 2. Directives that define the parameters of the 'main' or 'default' server, 
#  which responds to requests that aren't handled by a virtual host. 
#  These directives also provide default values for the settings 
#  of all virtual hosts. 
# 3. Settings for virtual hosts, which allow Web requests to be sent to 
#  different IP addresses or hostnames and have them handled by the 
#  same Apache server process. 
# 
# Configuration and logfile names: If the filenames you specify for many 
# of the server's control files begin with "/" (or "drive:/" for Win32), the 
# server will use that explicit path. If the filenames do *not* begin 
# with "/", the value of ServerRoot is prepended -- so "foo.log" 
# with ServerRoot set to "/etc/apache2" will be interpreted by the 
# server as "/etc/apache2/foo.log". 
# 

### Section 1: Global Environment 
# 
# The directives in this section affect the overall operation of Apache, 
# such as the number of concurrent requests it can handle or where it 
# can find its configuration files. 
# 

# 
# ServerRoot: The top of the directory tree under which the server's 
# configuration, error, and log files are kept. 
# 
# NOTE! If you intend to place this on an NFS (or otherwise network) 
# mounted filesystem then please read the LockFile documentation (available 
# at <URL:http://httpd.apache.org/docs/2.2/mod/mpm_common.html#lockfile>); 
# you will save yourself a lot of trouble. 
# 
# Do NOT add a slash at the end of the directory path. 
# 
#ServerRoot "/etc/apache2" 

# 
# The accept serialization lock file MUST BE STORED ON A LOCAL DISK. 
# 
LockFile ${APACHE_LOCK_DIR}/accept.lock 

# 
# PidFile: The file in which the server should record its process 
# identification number when it starts. 
# This needs to be set in /etc/apache2/envvars 
# 
PidFile ${APACHE_PID_FILE} 

# 
# Timeout: The number of seconds before receives and sends time out. 
# 
Timeout 300 

# 
# KeepAlive: Whether or not to allow persistent connections (more than 
# one request per connection). Set to "Off" to deactivate. 
# 
KeepAlive On 

# 
# MaxKeepAliveRequests: The maximum number of requests to allow 
# during a persistent connection. Set to 0 to allow an unlimited amount. 
# We recommend you leave this number high, for maximum performance. 
# 
MaxKeepAliveRequests 100 

# 
# KeepAliveTimeout: Number of seconds to wait for the next request from the 
# same client on the same connection. 
# 
KeepAliveTimeout 5 

## 
## Server-Pool Size Regulation (MPM specific) 
## 

# prefork MPM 
# StartServers: number of server processes to start 
# MinSpareServers: minimum number of server processes which are kept spare 
# MaxSpareServers: maximum number of server processes which are kept spare 
# MaxClients: maximum number of server processes allowed to start 
# MaxRequestsPerChild: maximum number of requests a server process serves 
<IfModule mpm_prefork_module> 
    StartServers   5 
    MinSpareServers  5 
    MaxSpareServers  10 
    MaxClients   150 
    MaxRequestsPerChild 0 
</IfModule> 

# worker MPM 
# StartServers: initial number of server processes to start 
# MinSpareThreads: minimum number of worker threads which are kept spare 
# MaxSpareThreads: maximum number of worker threads which are kept spare 
# ThreadLimit: ThreadsPerChild can be changed to this maximum value during a 
#    graceful restart. ThreadLimit can only be changed by stopping 
#    and starting Apache. 
# ThreadsPerChild: constant number of worker threads in each server process 
# MaxClients: maximum number of simultaneous client connections 
# MaxRequestsPerChild: maximum number of requests a server process serves 
<IfModule mpm_worker_module> 
    StartServers   2 
    MinSpareThreads  25 
    MaxSpareThreads  75 
    ThreadLimit   64 
    ThreadsPerChild  25 
    MaxClients   150 
    MaxRequestsPerChild 0 
</IfModule> 

# event MPM 
# StartServers: initial number of server processes to start 
# MinSpareThreads: minimum number of worker threads which are kept spare 
# MaxSpareThreads: maximum number of worker threads which are kept spare 
# ThreadsPerChild: constant number of worker threads in each server process 
# MaxClients: maximum number of simultaneous client connections 
# MaxRequestsPerChild: maximum number of requests a server process serves 
<IfModule mpm_event_module> 
    StartServers   2 
    MinSpareThreads  25 
    MaxSpareThreads  75 
    ThreadLimit   64 
    ThreadsPerChild  25 
    MaxClients   150 
    MaxRequestsPerChild 0 
</IfModule> 

# These need to be set in /etc/apache2/envvars 
User ${APACHE_RUN_USER} 
Group ${APACHE_RUN_GROUP} 

# 
# AccessFileName: The name of the file to look for in each directory 
# for additional configuration directives. See also the AllowOverride 
# directive. 
# 

AccessFileName .htaccess 

# 
# The following lines prevent .htaccess and .htpasswd files from being 
# viewed by Web clients. 
# 
<Files ~ "^\.ht"> 
    Order allow,deny 
    Deny from all 
    Satisfy all 
</Files> 

# 
# DefaultType is the default MIME type the server will use for a document 
# if it cannot otherwise determine one, such as from filename extensions. 
# If your server contains mostly text or HTML documents, "text/plain" is 
# a good value. If most of your content is binary, such as applications 
# or images, you may want to use "application/octet-stream" instead to 
# keep browsers from trying to display binary files as though they are 
# text. 
# 
DefaultType text/plain 


# 
# HostnameLookups: Log the names of clients or just their IP addresses 
# e.g., www.apache.org (on) or 204.62.129.132 (off). 
# The default is off because it'd be overall better for the net if people 
# had to knowingly turn this feature on, since enabling it means that 
# each client request will result in AT LEAST one lookup request to the 
# nameserver. 
# 
HostnameLookups Off 

# ErrorLog: The location of the error log file. 
# If you do not specify an ErrorLog directive within a <VirtualHost> 
# container, error messages relating to that virtual host will be 
# logged here. If you *do* define an error logfile for a <VirtualHost> 
# container, that host's errors will be logged there and not here. 
# 
ErrorLog ${APACHE_LOG_DIR}/error.log 

# 
# LogLevel: Control the number of messages logged to the error_log. 
# Possible values include: debug, info, notice, warn, error, crit, 
# alert, emerg. 
# 
LogLevel warn 

# Include module configuration: 
Include mods-enabled/*.load 
Include mods-enabled/*.conf 

# Include all the user configurations: 
Include httpd.conf 

# Include ports listing 
Include ports.conf 

# 
# The following directives define some format nicknames for use with 
# a CustomLog directive (see below). 
# If you are behind a reverse proxy, you might want to change %h into %{X-Forwarded-For}i 
# 
LogFormat "%v:%p %h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" vhost_combined 
LogFormat "%h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" combined 
LogFormat "%h %l %u %t \"%r\" %>s %O" common 
LogFormat "%{Referer}i -> %U" referer 
LogFormat "%{User-agent}i" agent 

# Include of directories ignores editors' and dpkg's backup files, 
# see README.Debian for details. 

# Include generic snippets of statements 
Include conf.d/ 

# Include the virtual host configurations: 
Include sites-enabled/ 

默認@站點可用

<VirtualHost *:80> 
    ServerAdmin [email protected] 

    DocumentRoot /var/www 
    <Directory /> 
     Options FollowSymLinks 
     AllowOverride All 
    </Directory> 
    <Directory /var/www/> 
     Options Indexes FollowSymLinks MultiViews 
     AllowOverride None 
     Order allow,deny 
     allow from all 
    </Directory> 

    ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ 
    <Directory "/usr/lib/cgi-bin"> 
     AllowOverride None 
     Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch 
     Order allow,deny 
     Allow from all 
    </Directory> 

    ErrorLog ${APACHE_LOG_DIR}/error.log 

    # Possible values include: debug, info, notice, warn, error, crit, 
    # alert, emerg. 
    LogLevel warn 

    CustomLog ${APACHE_LOG_DIR}/access.log combined 

    Alias /doc/ "/usr/share/doc/" 
    <Directory "/usr/share/doc/"> 
     Options Indexes MultiViews FollowSymLinks 
     AllowOverride None 
     Order deny,allow 
     Deny from all 
     Allow from 127.0.0.0/255.0.0.0 ::1/128 
    </Directory> 

</VirtualHost> 
+1

「*我的.htaccess文件仍然不起作用。*」 - 需要更多 –

+0

像什麼,邁克?我很絕望,試圖運行這個重寫幾個小時,我找不到有什麼問題。 –

+1

刪除'.htaccess'文件,看看它是否工作。然後開始添加大塊的線,看看它崩潰的地方。 –

回答

4

看看這個:

<Directory /> 
    Options FollowSymLinks 
    AllowOverride All 
</Directory> 
<Directory /var/www/> 
    Options Indexes FollowSymLinks MultiViews 
    AllowOverride None 
    Order allow,deny 
    allow from all 
</Directory> 

您已經啓用AllowOverride All的根目錄下,但隨後禁用它在/ var/WWW /。我猜你打算使用Location /而不是Directory /

補充說明AllowOverride必須位於Directory部分。如果在Location中受支持,Location可覆蓋Directory中的指令。

+0

哦,男人,就是這樣,對於愚蠢對不起,我總是想念那些簡單的事情...... –

0

剛打這個Debian的拉伸和默認安全選項的位置:

/etc/apache2/mods-enabled/userdir.conf 

需要

AllowOverride All 

在裏面。

相關問題