2012-11-07 53 views
7

我想配置Apache以允許.htaccess重寫規則。我使用XAMPP在本地運行Apache。但是,我不斷收到500錯誤。我一直在Google上搜索幾個小時,並嘗試了所有常見解決方案,所以請閱讀我的整篇文章,以免重複我已經嘗試過的解決方案。「RewriteEngine不允許在這裏」.htaccess錯誤使用XAMPP

當我檢查Apache的錯誤記錄錯誤讀取:

「C:/xampp/htdocs/xampp/websites/demo2/.htaccess中:RewriteEngine這裏不允許」。

幾乎所有其他人我能找到的是有這個問題解決了它的:

  1. 取消註釋在httpd.conf中LoadModule rewrite_module modules/mod_rewrite.so命令
  2. 更改AllowOverride noneAllowOverride All

但這些解決方案都不適合我。我仍然得到500錯誤。我的問題聽起來與此線程http://forums.digitalpoint.com/showthread.php?t=1786841完全相同,但該問題從未解決。我認爲這個錯誤可能是我的.htaccess文件的位置,但我不知道。任何有識之士都非常感謝!

順便說一句,這是我的.htaccess文件。這是一個WordPress的安裝:

# BEGIN WordPress 
<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteBase /xampp/websites/demo2/ 
RewriteRule ^index\.php$ - [L] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule . /xampp/websites/demo2/index.php [L] 
</IfModule> 

# END WordPress 

,這裏是我的httpd.conf文件

 

    # 
    # This is the main Apache HTTP server configuration file. It contains the 
    # configuration directives that give the server its instructions. 
    # See for detailed information. 
    # In particular, see 
    # 
    # for a discussion of each configuration directive. 
    # 
    # 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. 
    # 
    # 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 "logs/foo.log" 
    # with ServerRoot set to "/xampp/apache" will be interpreted by the 
    # server as "/xampp/apache/logs/foo.log". 
    # 
    # NOTE: Where filenames are specified, you must use forward slashes 
    # instead of backslashes (e.g., "c:/apache" instead of "c:\apache"). 
    # If a drive letter is omitted, the drive on which httpd.exe is located 
    # will be used by default. It is recommended that you always supply 
    # an explicit drive letter in absolute paths to avoid confusion. 

    # 
    # ServerRoot: The top of the directory tree under which the server's 
    # configuration, error, and log files are kept. 
    # 
    # Do not add a slash at the end of the directory path. If you point 
    # ServerRoot at a non-local disk, be sure to point the LockFile directive 
    # at a local disk. If you wish to share the same ServerRoot for multiple 
    # httpd daemons, you will need to change at least LockFile and PidFile. 
    # 
    ServerRoot "/xampp/apache" 

    # 
    # Listen: Allows you to bind Apache to specific IP addresses and/or 
    # ports, instead of the default. See also the 
    # directive. 
    # 
    # Change this to Listen on specific IP addresses as shown below to 
    # prevent Apache from glomming onto all bound IP addresses. 
    # 
    #Listen 0.0.0.0:80 
    #Listen [::]:80 
    Listen 80 

    # Default charset UTF8 
    # AddDefaultCharset utf-8 

    # 
    # Dynamic Shared Object (DSO) Support 
    # 
    # To be able to use the functionality of a module which was built as a DSO you 
    # have to place corresponding `LoadModule' lines at this location so the 
    # directives contained in it are actually available _before_ they are used. 
    # Statically compiled modules (those listed by `httpd -l') do not need 
    # to be loaded here. 
    # 
    # Example: 
    # LoadModule foo_module modules/mod_foo.so 
    # 

    LoadModule access_compat_module modules/mod_access_compat.so 
    LoadModule actions_module modules/mod_actions.so 
    LoadModule alias_module modules/mod_alias.so 
    LoadModule allowmethods_module modules/mod_allowmethods.so 
    LoadModule asis_module modules/mod_asis.so 
    LoadModule auth_basic_module modules/mod_auth_basic.so 
    #LoadModule auth_digest_module modules/mod_auth_digest.so 
    #LoadModule authn_anon_module modules/mod_authn_anon.so 
    LoadModule authn_core_module modules/mod_authn_core.so 
    #LoadModule authn_dbd_module modules/mod_authn_dbd.so 
    #LoadModule authn_dbm_module modules/mod_authn_dbm.so 
    LoadModule authn_file_module modules/mod_authn_file.so 
    #LoadModule authn_socache_module modules/mod_authn_socache.so 
    #LoadModule authnz_ldap_module modules/mod_authnz_ldap.so 
    LoadModule authz_core_module modules/mod_authz_core.so 
    #LoadModule authz_dbd_module modules/mod_authz_dbd.so 
    #LoadModule authz_dbm_module modules/mod_authz_dbm.so 
    LoadModule authz_groupfile_module modules/mod_authz_groupfile.so 
    LoadModule authz_host_module modules/mod_authz_host.so 
    #LoadModule authz_owner_module modules/mod_authz_owner.so 
    LoadModule authz_user_module modules/mod_authz_user.so 
    LoadModule autoindex_module modules/mod_autoindex.so 
    #LoadModule bucketeer_module modules/mod_bucketeer.so 
    #LoadModule cache_module modules/mod_cache.so 
    #LoadModule case_filter_module modules/mod_case_filter.so 
    #LoadModule case_filter_in_module modules/mod_case_filter_in.so 
    #LoadModule cern_meta_module modules/mod_cern_meta.so 
    LoadModule cgi_module modules/mod_cgi.so 
    #LoadModule charset_lite_module modules/mod_charset_lite.so 
    #LoadModule dav_module modules/mod_dav.so 
    #LoadModule dav_fs_module modules/mod_dav_fs.so 
    LoadModule dav_lock_module modules/mod_dav_lock.so 
    #LoadModule dbd_module modules/mod_dbd.so 
    #LoadModule deflate_module modules/mod_deflate.so 
    LoadModule dir_module modules/mod_dir.so 
    #LoadModule disk_cache_module modules/mod_disk_cache.so 
    #LoadModule dumpio_module modules/mod_dumpio.so 
    #LoadModule echo_module modules/mod_echo.so 
    LoadModule env_module modules/mod_env.so 
    #LoadModule example_module modules/mod_example.so 
    #LoadModule expires_module modules/mod_expires.so 
    #LoadModule ext_filter_module modules/mod_ext_filter.so 
    #LoadModule fcgid_module modules/mod_fcgid.so # did not work at runtime 
    #LoadModule file_cache_module modules/mod_file_cache.so 
    #LoadModule filter_module modules/mod_filter.so 
    LoadModule headers_module modules/mod_headers.so 
    #LoadModule ident_module modules/mod_ident.so 
    #LoadModule imagemap_module modules/mod_imagemap.so 
    LoadModule include_module modules/mod_include.so 
    LoadModule info_module modules/mod_info.so 
    LoadModule isapi_module modules/mod_isapi.so 
    #LoadModule ldap_module modules/mod_ldap.so 
    #LoadModule logio_module modules/mod_logio.so 
    LoadModule log_config_module modules/mod_log_config.so 
    #LoadModule log_forensic_module modules/mod_log_forensic.so 
    LoadModule cache_disk_module modules/mod_cache_disk.so 
    LoadModule mime_module modules/mod_mime.so 
    #LoadModule mime_magic_module modules/mod_mime_magic.so 
    LoadModule negotiation_module modules/mod_negotiation.so 
    LoadModule proxy_module modules/mod_proxy.so 
    LoadModule proxy_ajp_module modules/mod_proxy_ajp.so 
    #LoadModule proxy_balancer_module modules/mod_proxy_balancer.so 
    #LoadModule proxy_connect_module modules/mod_proxy_connect.so 
    #LoadModule proxy_ftp_module modules/mod_proxy_ftp.so 
    #LoadModule proxy_http_module modules/mod_proxy_http.so 
    LoadModule rewrite_module modules/mod_rewrite.so 
    LoadModule setenvif_module modules/mod_setenvif.so 
    #LoadModule speling_module modules/mod_speling.so 
    LoadModule ssl_module modules/mod_ssl.so 
    LoadModule status_module modules/mod_status.so 
    #LoadModule substitute_module modules/mod_substitute.so 
    #LoadModule unique_id_module modules/mod_unique_id.so 
    #LoadModule userdir_module modules/mod_userdir.so 
    #LoadModule usertrack_module modules/mod_usertrack.so 
    #LoadModule version_module modules/mod_version.so 
    #LoadModule vhost_alias_module modules/mod_vhost_alias.so 

    
    
    # 
    # If you wish httpd to run as a different user or group, you must run 
    # httpd as root initially and it will switch. 
    # 
    # User/Group: The name (or #number) of the user/group to run httpd as. 
    # It is usually good practice to create a dedicated user and group for 
    # running httpd, as with most system services. 
    # 
    User daemon 
    Group daemon 

    
    

    # 'Main' server configuration 
    # 
    # The directives in this section set up the values used by the 'main' 
    # server, which responds to any requests that aren't handled by a 
    # definition. These values also provide defaults for 
    # any containers you may define later in the file. 
    # 
    # All of these directives may appear inside containers, 
    # in which case these default settings will be overridden for the 
    # virtual host being defined. 
    # 

    # 
    # ServerAdmin: Your address, where problems with the server should be 
    # e-mailed. This address appears on some server-generated pages, such 
    # as error documents. e.g. [email protected] 
    # 
    ServerAdmin [email protected] 

    # 
    # ServerName gives the name and port that the server uses to identify itself. 
    # This can often be determined automatically, but we recommend you specify 
    # it explicitly to prevent problems during startup. 
    # 
    # If your host doesn't have a registered DNS name, enter its IP address here. 
    # 
    ServerName localhost:80 

    # 
    # DocumentRoot: The directory out of which you will serve your 
    # documents. By default, all requests are taken from this directory, but 
    # symbolic links and aliases may be used to point to other locations. 
    # 
    DocumentRoot "/xampp/htdocs" 

    # 
    # Each directory to which Apache has access can be configured with respect 
    # to which services and features are allowed and/or disabled in that 
    # directory (and its subdirectories). 
    # 
    # First, we configure the "default" to be a very restrictive set of 
    # features. 
    # 
    
     AllowOverride All 
     Require all granted 
    


    # XAMPP: We disable operating system specific optimizations for a listening 
    # socket by the http protocol here. IE 64 bit make problems without this. 
    AcceptFilter http none 

    # 
    # Note that from this point forward you must specifically allow 
    # particular features to be enabled - so if something's not working as 
    # you might expect, make sure that you have specifically enabled it 
    # below. 
    # 

    # 
    # This should be changed to whatever you set DocumentRoot to. 
    # 
    
     # 
     # Possible values for the Options directive are "None", "All", 
     # or any combination of: 
     # Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews 
     # 
     # Note that "MultiViews" must be named *explicitly* --- "Options All" 
     # doesn't give it to you. 
     # 
     # The Options directive is both complicated and important. Please see 
     # http://httpd.apache.org/docs/2.2/mod/core.html#options 
     # for more information. 
     # 
     Options Indexes FollowSymLinks Includes ExecCGI 

     # 
     # AllowOverride controls what directives may be placed in .htaccess files. 
     # It can be "All", "None", or any combination of the keywords: 
     # Options FileInfo AuthConfig Limit 
     # 
     AllowOverride All 

     # 
     # Controls who can get stuff from this server. 
     # 
     Require all granted 

    

    # 
    # DirectoryIndex: sets the file that Apache will serve if a directory 
    # is requested. 
    # 
    
     DirectoryIndex index.php index.pl index.cgi index.asp index.shtml index.html index.htm \ 
         default.php default.pl default.cgi default.asp default.shtml default.html default.htm \ 
         home.php home.pl home.cgi home.asp home.shtml home.html home.htm 
    

    # 
    # The following lines prevent .htaccess and .htpasswd files from being 
    # viewed by Web clients. 
    # 
    
     Require all denied 
    

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

    #ScriptLog "logs/cgi.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 

    
     # 
     # The following directives define some format nicknames for use with 
     # a CustomLog directive (see below). 
     # 
     LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined 
     LogFormat "%h %l %u %t \"%r\" %>s %b" common 

     
      # You need to enable mod_logio.c to use %I and %O 
      LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio 
     

     # 
     # The location and format of the access logfile (Common Logfile Format). 
     # If you do not define any access logfiles within a 
     # container, they will be logged here. Contrariwise, if you *do* 
     # define per- access logfiles, transactions will be 
     # logged therein and *not* in this file. 
     # 
     #CustomLog "logs/access.log" common 

     # 
     # If you prefer a logfile with access, agent, and referer information 
     # (Combined Logfile Format) you can use the following directive. 
     # 
     CustomLog "logs/access.log" combined 
    

    
     # 
     # Redirect: Allows you to tell clients about documents that used to 
     # exist in your server's namespace, but do not anymore. The client 
     # will make a new request for the document at its new location. 
     # Example: 
     # Redirect permanent /foo http://localhost/bar 

     # 
     # Alias: Maps web paths into filesystem paths and is used to 
     # access content that does not live under the DocumentRoot. 
     # Example: 
     # Alias /webpath /full/filesystem/path 
     # 
     # If you include a trailing/on /webpath then the server will 
     # require it to be present in the URL. You will also likely 
     # need to provide a section to allow access to 
     # the filesystem path. 

     # 
     # ScriptAlias: This controls which directories contain server scripts. 
     # ScriptAliases are essentially the same as Aliases, except that 
     # documents in the target directory are treated as applications and 
     # run by the server when requested rather than as documents sent to the 
     # client. The same rules about trailing "/" apply to ScriptAlias 
     # directives as to Alias. 
     # 
     ScriptAlias /cgi-bin/ "/xampp/cgi-bin/" 

    

    
     # 
     # ScriptSock: On threaded servers, designate the path to the UNIX 
     # socket used to communicate with the CGI daemon of mod_cgid. 
     # 
     #Scriptsock "logs/cgi.sock" 
    

    # 
    # "/xampp/cgi-bin" should be changed to whatever your ScriptAliased 
    # CGI directory exists, if you have that configured. 
    # 
    
     AllowOverride All 
     Options None 
     Require all granted 
    


    
     # 
     # TypesConfig points to the file containing the list of mappings from 
     # filename extension to MIME-type. 
     # 
     TypesConfig "conf/mime.types" 

     # 
     # AddType allows you to add to or override the MIME configuration 
     # file specified in TypesConfig for specific file types. 
     # 
     #AddType application/x-gzip .tgz 
     # 
     # AddEncoding allows you to have certain browsers uncompress 
     # information on the fly. Note: Not all browsers support this. 
     # 
     #AddEncoding x-compress .Z 
     #AddEncoding x-gzip .gz .tgz 
     # 
     # If the AddEncoding directives above are commented-out, then you 
     # probably should define those extensions to indicate media types: 
     # 
     AddType application/x-compress .Z 
     AddType application/x-gzip .gz .tgz 

     # 
     # AddHandler allows you to map certain file extensions to "handlers": 
     # actions unrelated to filetype. These can be either built into the server 
     # or added with the Action directive (see below) 
     # 
     # To use CGI scripts outside of ScriptAliased directories: 
     # (You will also need to add "ExecCGI" to the "Options" directive.) 
     # 
     AddHandler cgi-script .cgi .pl .asp 

     # For type maps (negotiated resources): 
     #AddHandler type-map var 

     # 
     # Filters allow you to process content before it is sent to the client. 
     # 
     # To parse .shtml files for server-side includes (SSI): 
     # (You will also need to add "Includes" to the "Options" directive.) 
     # 
     AddType text/html .shtml 
     AddOutputFilter INCLUDES .shtml 
    

    
     # 
     # The mod_mime_magic module allows the server to use various hints from the 
     # contents of the file itself to determine its type. The MIMEMagicFile 
     # directive tells the module where the hint definitions are located. 
     # 
     MIMEMagicFile "conf/magic" 
    

    # 
    # Customizable error responses come in three flavors: 
    # 1) plain text 2) local redirects 3) external redirects 
    # 
    # Some examples: 
    #ErrorDocument 500 "The server made a boo boo." 
    #ErrorDocument 404 /missing.html 
    #ErrorDocument 404 "/cgi-bin/missing_handler.pl" 
    #ErrorDocument 402 http://localhost/subscription_info.html 
    # 

    # 
    # EnableMMAP and EnableSendfile: On systems that support it, 
    # memory-mapping or the sendfile syscall is used to deliver 
    # files. This usually improves server performance, but must 
    # be turned off when serving from networked-mounted 
    # filesystems or if support for these functions is otherwise 
    # broken on your system. 
    # 
    #EnableMMAP off 
    #EnableSendfile off 

    # Supplemental configuration 
    # 
    # The configuration files in the conf/extra/ directory can be 
    # included to add extra features or to modify the default configuration of 
    # the server, or you may simply copy their contents here and change as 
    # necessary. 

    # XAMPP specific settings 
    Include "conf/extra/httpd-xampp.conf" 

    # Server-pool management (MPM specific) 
    Include "conf/extra/httpd-mpm.conf" 

    # Multi-language error messages 
    Include "conf/extra/httpd-multilang-errordoc.conf" 

    # Fancy directory listings 
    Include "conf/extra/httpd-autoindex.conf" 

    # Language settings 
    Include "conf/extra/httpd-languages.conf" 

    # User home directories 
    Include "conf/extra/httpd-userdir.conf" 

    # Real-time info on requests and configuration 
    Include "conf/extra/httpd-info.conf" 

    # Virtual hosts 
    Include "conf/extra/httpd-vhosts.conf" 

    # Distributed authoring and versioning (WebDAV) 
    # Attention! WEB_DAV is a security risk without a new userspecific configuration for a secure authentifcation 
    # Include "conf/extra/httpd-dav.conf" 

    # Implements a proxy/gateway for Apache. 
    Include "conf/extra/httpd-proxy.conf" 

    # Various default settings 
    Include "conf/extra/httpd-default.conf" 

    # Secure (SSL/TLS) connections 
    Include "conf/extra/httpd-ssl.conf" 
    # 
    # Note: The following must must be present to support 
    #  starting without SSL on platforms with no /dev/random equivalent 
    #  but a statically compiled-in mod_ssl. 
    # 
    
     SSLRandomSeed startup builtin 
     SSLRandomSeed connect builtin 
    

    # Configure mod_proxy_html to understand HTML4/XHTML1 
    # 
    #Include etc/extra/proxy-html.conf 
    # 

    # AJP13 Proxy 
    
    
    Include "conf/extra/httpd-ajp.conf" 
    
    

+0

你重新啓動Apache使你的配置更改後?你能顯示你的.htaccess文件嗎? –

+0

是的,我重新啓動了Apache。我剛剛添加了我的.htaccess的問題。謝謝! – BWDesign

+0

您是否100%確定其他地方沒有其他AllowOverride,覆蓋您的設置? –

回答

9

設置了AllowOverride到所有的conf /額外/的httpd-xampp.conf。

+0

解決了這個問題!似乎很奇怪,沒有人遇到這個問題。我還必須將.htaccess文件中的'RewriteBase'更改爲'/ xampp/htdocs /',而不是Wordpress生成的那個,但現在一切正常。謝謝! – BWDesign

+0

這並沒有爲我工作。我手動安裝了Apache和PHP。 – PSyLoCKe

+0

謝謝,幫助我! :-) – alpham8

0

嘗試:

1)=>打開文件... \ XAMPP \阿帕奇\ CONF \的httpd.conf

2)=>找到行 「的LoadModule rewrite_module模塊/ mod_rewrite.so」

3)=>如果下面是該行前的#刪除它。(刪除評論)

我希望它會幫助你