GVKun编程网logo

apache mod_rewrite无法与.htaccess文件一起使用(apache rewrite模块)

20

想了解apachemod_rewrite无法与.htaccess文件一起使用的新动态吗?本文将为您提供详细的信息,我们还将为您解答关于apacherewrite模块的相关问题,此外,我们还将为您介绍关

想了解apache mod_rewrite无法与.htaccess文件一起使用的新动态吗?本文将为您提供详细的信息,我们还将为您解答关于apache rewrite模块的相关问题,此外,我们还将为您介绍关于.htaccess mod_rewrite子目录到URL参数、.htaccess mod_rewrite的解释、.htaccess不工作(mod_rewrite)、.htaccess不起作用(mod_rewrite)的新知识。

本文目录一览:

apache mod_rewrite无法与.htaccess文件一起使用(apache rewrite模块)

apache mod_rewrite无法与.htaccess文件一起使用(apache rewrite模块)

好的,我一直在遇到aws或某些问题,以至于我似乎无法使mod_rewrite正常工作。

仅出于测试目的,我做了以下工作:

1使用AWS控制台从向导部署新的AMI 64位实例

2百胜装的apache

3编辑了/etc/httpd/conf/httpd.conf:

<Directory />
    Options FollowSymLinks
    AllowOverride None
</Directory>

好像

<Directory />
    Options FollowSymLinks
    AllowOverride All
</Directory>

4确保

LoadModule rewrite_module modules/mod_rewrite.so

在文件中且未注释。

5重启apache:

 sudo /sbin/service httpd restart

6创建了两个新文件:

/var/www/html/test1.html

包含:

this is test1!

/var/www/html/test2.html

包含:

this is test2!

7.创建文件:

/var/www/html/.htaccess

包含(共TOTAL个):

RewriteEngine on
RewriteRule ^test1\.html$ test2.html [L]

8去:

http://[my aws server]/test1.html

正在收到“这是test1!”

我在这里做错了事,但对于我的一生,我不知道该怎么办。任何帮助是极大的赞赏…

编辑:我在我的.htaccess文件的开头添加了无用的字符/数字,然后重新启动了apache(不是100%确定需要它,但是嘿…),什么也没发生。换句话说,我希望转到url
[aws server] /test1.html会导致某种错误,但是不会。我怀疑apache甚至没有读取.htaccess文件。

编辑:我将以下内容添加到我的httpd.conf文件中:

RewriteLog "/tmp/rewrite.log"
RewriteLogLevel 9

该文件是在重新启动apache时创建的,但是当我转到已设置的任一页面时,文件都没有进入该文件。我无法在这里做非常非常基本的事情,但是我不确定…

.htaccess mod_rewrite子目录到URL参数

.htaccess mod_rewrite子目录到URL参数

我希望这个问题不会一遍又一遍地被提出来,但是我没有深入到使用google,w3schools等等的答案。 所以这里是我的问题:我正在编写一个脚本,它创build了一些我在主页上的项目索引,并根据一个信息文件制作了一个包含图像和传情文本的好列表。 我主要有我的项目在github上,自述是在降价,所以我想我可以dynamic生成从github的最新blob的markdown使用PHP的需求,所以它会自动更新的HTML。 我的目录结构如下所示:

projects project1 .remoteindex .info project2 .remoteindex .info index.PHP .htaccess

所以当只有domain.tld/projects/被请求的时候,我从.info获得信息,并为所有的项目build立一个好的索引。 但是,如果domain.tld/projects/project1/正在请求它,我想在内部redirect到domain.tld/projects/?dir=project1来做我的markdownparsing等等。 但是domain.tld/projects/project1/image.png不应该被redirect。

这是我试过的:

.htaccess RewriteEngine on RewriteRule ^([^/]+)/?$ index.PHP?dir=$1 [R,L]

我做了redirect而不是重写,所以我可以看到错误是什么,因为我刚刚得到了404。我被redirect到的URL是domain.tld/home/www/web310/html/projects/index.PHP?dir=project1所以显然有一些错误的内部结构的Web服务器的path一样。 我希望你能理解我的问题,如果有人能帮助我,我会很高兴,因为我完全无法使用.htaccess 。

将通配符子域redirect到子目录,而不更改地址栏中的URL

recursionmod_rewritesearch引擎友好的url

.htaccess重写:子域名作为GET参数和文件path完好无损后

在.htaccess中使用基于环境variables的RewriteCond

PRESTASHOP Nginx + REWRITE规则

编辑:

看到我的答案下面的使用.htaccess 。

奇怪的是,如果我在子目录中有一个index.html ,我的本地Web服务器(带有Mac OS X 1.7.3的XAMPP的Apache)不会重写,并且index.html会显示出来,而没有一个工作正常但是在我服务我的主页的真实web服务器上,它改写了index.html (这是我想要的)。 有什么提示?

mod_rewrite不适用于Windows 7上的Apache 2.2

在apache localhost服务器上使用.htaccess文件

Htaccess维护模式允许某些目录

使用Nginx的try_files将所有非现有文件的请求重写为index.PHP

使用.htaccess重写GET查询string

感谢所有的帮助! 你们真棒!

我发现两种解决方案的共生对我来说很合适:

RewriteEngine on RewriteBase /projects RewriteCond %{SCRIPT_FILENAME} !-f RewriteCond %{SCRIPT_FILENAME} -d RewriteRule ^([^/]+)/?$ index.PHP?dir=$1 [QSA,L]

当然只有没有[R] ,这是我的错。 (请参阅我的问题请编辑另一个问题)。

你需要添加一个RewriteBase /projects到htaccess。 这样的重定向将正常工作。

编辑:

RewriteEngine on RewriteRule ^index.PHP - [L] RewriteRule ^([^/]+)/?$ index.PHP?dir=$1 [R,L]

按照你的要求,重要的是不要做重定向,但是让重写过程在内部修改URL即RewriteRule不应该以[R,L]结束,而应该是[L] ,也许“ query string append ”指令保留那是什么? 所以这应该是[QSA,L] 。

下面是我如何避免重写静态文件:如果它不是一个文件然后(并且只有那样)测试它:

# if it''s not a file... RewriteCond %{SCRIPT_FILENAME} !-f # ... and it''s a dir RewriteCond %{SCRIPT_FILENAME} -d # ... then rewrite it internally and stop further processing: RewriteRule projects/([^/]+)(/?)$ index.PHP?dir=$1 [QSA,L]

现在有两个提示:

请尝试使用RewriteLog指令:它可以帮助你追踪这样的问题:

# Trace: # (!) file gets big quickly,remove in prod environments: RewriteLog "/web/logs/mywebsite.rewrite.log" RewriteLogLevel 9 RewriteEngine On

我最喜欢的工具来检查正则表达式:

http://www.quanetic.com/Regex (不要忘了选择ereg(POSIX)而不是preg(PCRE)!)

总结

以上是小编为你收集整理的.htaccess mod_rewrite子目录到URL参数全部内容。

如果觉得小编网站内容还不错,欢迎将小编网站推荐给好友。

.htaccess mod_rewrite的解释

.htaccess mod_rewrite的解释

我一直在试图让这个国防部重写的事情。 基本上我想要:

removed.com/WineGlass/Vin.PHP

removed.com/Chandelier/Auto.PHP

被翻译成:

removed.com/news.PHP?post=Vin.PHP&cat=WineGlass

removed.com/news.PHP?post=Auto.PHP&cat=Chandelier

到目前为止我有:

Options -Multiviews Options +FollowSymLinks RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^/(.*)/(w+.PHP)$ ./news.PHP?cat=$1&amp;post=$2

我对发生的事情的理解是,它应该试图确定文件是否存在,如果不存在,检查它是否符合模式。 如果符合该模式,则应该将URL重写为所需的。

使用查询string重写规则

删除尾部的斜杠

在RewriteCond文件中使用改变的%{REQUEST_URI}检查

我将如何在.htaccess文件中编写if – elseif – elseif条件块?

.htaccess指令*不*redirect某些URL

我使用GoDaddy.com作为我的主机,并在互联网上发现许多post,build议-Multiviews是必需的。

确切的错误是:在这台服务器上找不到请求的URL / poz/WineGlass/Vin.PHP。

根是/删除/这是news.PHPrest的地方

我用regexr.com来testing正则expression式: http ://regexr.com?37s5e

奖金:我尝试了几种方法排除上面的例子中的最后一个url,但无法。 如果你能帮上忙,我会非常感激。

修改两个站点的htaccess文件

如何阻止100,000+个人IP地址

如何在不发送404头的情况下redirect未find的URL?

使用htaccess进行维护页面转发对于代理资料不起作用

用查询stringhtaccess RewriteRule页面

在您的DOCUMENT_ROOT/.htaccess文件中使用此规则:

Options +FollowSymLinks -Multiviews RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^([^/]+)/([^.]+.PHP)$ /news.PHP?cat=$1&post=$2 [L,QSA]

总结

以上是小编为你收集整理的.htaccess mod_rewrite的解释全部内容。

如果觉得小编网站内容还不错,欢迎将小编网站推荐给好友。

.htaccess不工作(mod_rewrite)

.htaccess不工作(mod_rewrite)

我没有任何运气让我的.htaccess与mod_rewrite工作。 基本上我所要做的就是从“ http://www.example.com ”和“ https://www.example.com ”中删除“www”。

如果有什么我失踪(conf文件等让我知道我会更新这个)

这里是我的.htaccess文件(位于@ / var / www / site / trunk / html /)

Options +FollowSymLinks RewriteEngine on RewriteCond %{HTTP_HOST} ^www.(.*) [NC] RewriteRule (.*) //%1/$1 [L,R=301]

我的mod_rewrite已启用:

安装fileinfo PHP扩展

Docker在开发环境中

可重写的URL重写(更改地址栏中的URL)

超简单的HTTP套接字服务器,用PHP编写,performance出意外

在.htaccess文件中重写URL

root@s15348441:/etc/apache2/mods-available# more rewrite.load LoadModule rewrite_module /usr/lib/apache2/modules/mod_rewrite.so

我的apacheconfiguration文件:

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 "/var/log/apache2/foo.log" # with ServerRoot set to "" will be interpreted by the # server as "//var/log/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.1/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. # #<IfModule !mpm_winnt.c> #<IfModule !mpm_netware.c> LockFile /var/lock/apache2/accept.lock #</IfModule> #</IfModule> # # 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 15 ## ## 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 # MaxClients: maximum number of simultaneous client connections # 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 # MaxRequestsPerChild: maximum number of requests a server process serves <IfModule mpm_worker_module> StartServers 2 MaxClients 150 MinSpareThreads 25 MaxSpareThreads 75 ThreadsPerChild 25 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 </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 # eg,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 /var/log/apache2/error.log # # LogLevel: Control the number of messages logged to the error_log. # Possible values include: debug,info,notice,warn,crit,# alert,emerg. # LogLevel warn # Include module configuration: Include /etc/apache2/mods-enabled/*.load Include /etc/apache2/mods-enabled/*.conf # Include all the user configurations: Include /etc/apache2/httpd.conf # Include ports listing Include /etc/apache2/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 "%h %l %u %t "%r" %>s %b "%{Referer}i" "%{User-Agent}i"" combined LogFormat "%h %l %u %t "%r" %>s %b" common LogFormat "%{Referer}i -> %U" referer LogFormat "%{User-agent}i" agent # # ServerTokens # This directive configures what you return as the Server HTTP response # Header. The default is ''Full'' which sends information about the OS-Type # and compiled in modules. # Set to one of: Full | OS | Minor | Minimal | Major | Prod # where Full conveys the most information,and Prod the least. # ServerTokens Full # # Optionally add a line containing the server version and virtual host # name to server-generated pages (internal error documents,FTP directory # listings,mod_status and mod_info output etc.,but not CGI generated # documents or custom error documents). # Set to "EMail" to also include a mailto: link to the ServerAdmin. # Set to one of: On | Off | EMail # ServerSignature On # # 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://www.example.com/subscription_info.html # # # Putting this all together,we can internationalize error responses. # # We use Alias to redirect any /error/HTTP_<error>.html.var response to # our collection of by-error message multi-language collections. We use # includes to substitute the appropriate text. # # You can modify the messages'' appearance without changing any of the # default HTTP_<error>.html.var files by adding the line: # # Alias /error/include/ "/your/include/path/" # # which allows you to create your own set of files by starting with the # /usr/share/apache2/error/include/ files and copying them to /your/include/path/,# even on a per-VirtualHost basis. The default include files will display # your Apache version number and your ServerAdmin email address regardless # of the setting of ServerSignature. # # The internationalized error documents require mod_alias,mod_include # and mod_negotiation. To activate them,uncomment the following 30 lines. # Alias /error/ "/usr/share/apache2/error/" # # <Directory "/usr/share/apache2/error"> # AllowOverride None # Options IncludesNoExec # AddOutputFilter Includes html # AddHandler type-map var # Order allow,deny # Allow from all # LanguagePriority en cs de es fr it nl sv pt-br ro # ForceLanguagePriority Prefer Fallback # </Directory> # # ErrorDocument 400 /error/HTTP_BAD_REQUEST.html.var # ErrorDocument 401 /error/HTTP_UNAUTHORIZED.html.var # ErrorDocument 403 /error/HTTP_FORBIDDEN.html.var # ErrorDocument 404 /error/HTTP_NOT_FOUND.html.var # ErrorDocument 405 /error/HTTP_METHOD_NOT_ALLOWED.html.var # ErrorDocument 408 /error/HTTP_Request_TIME_OUT.html.var # ErrorDocument 410 /error/HTTP_GONE.html.var # ErrorDocument 411 /error/HTTP_LENGTH_required.html.var # ErrorDocument 412 /error/HTTP_PRECONDITION_Failed.html.var # ErrorDocument 413 /error/HTTP_Request_ENTITY_TOO_LARGE.html.var # ErrorDocument 414 /error/HTTP_Request_URI_TOO_LARGE.html.var # ErrorDocument 415 /error/HTTP_UNSUPPORTED_MEDIA_TYPE.html.var # ErrorDocument 500 /error/HTTP_INTERNAL_SERVER_ERROR.html.var # ErrorDocument 501 /error/HTTP_NOT_IMPLEMENTED.html.var # ErrorDocument 502 /error/HTTP_BAD_GATEWAY.html.var # ErrorDocument 503 /error/HTTP_SERVICE_UNAVAILABLE.html.var # ErrorDocument 506 /error/HTTP_VARIANT_ALSO_VARIES.html.var # Include of directories ignores editors'' and dpkg''s backup files,# see README.Debian for details. # Include generic snippets of statements Include /etc/apache2/conf.d/ # Include the virtual host configurations: Include /etc/apache2/sites-enabled/

我在Apache上的默认configuration文件www

NameVirtualHost *:80 <VirtualHost *:80> ServerAdmin info@example.com #SSLEnable #SSLVerifyClient none #SSLCertificateFile /usr/local/ssl/crt/public.crt #SSLCertificateKeyFile /usr/local/ssl/private/private.key DocumentRoot /var/www/site/trunk/html <Directory /> Options FollowSymLinks AllowOverride all </Directory> <Directory /var/www/site/trunk/html> Options Indexes FollowSymLinks MultiViews AllowOverride all 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 /var/log/apache2/error.log # Possible values include: debug,emerg. LogLevel warn CustomLog /var/log/apache2/access.log combined ServerSignature On 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>

我的SSLconfiguration文件

NameVirtualHost *:443 <VirtualHost *:443> ServerAdmin info@example.com #SSLEnable #SSLVerifyClient none #SSLCertificateFile /usr/local/ssl/crt/public.crt #SSLCertificateKeyFile /usr/local/ssl/private/private.key DocumentRoot /var/www/site/trunk/html <Directory /> Options FollowSymLinks AllowOverride all </Directory> <Directory /var/www/site/trunk/html> Options Indexes FollowSymLinks MultiViews AllowOverride all Order allow,emerg. LogLevel warn SSLEngine On SSLCertificateFile /usr/local/ssl/crt/public.crt SSLCertificateKeyFile /usr/local/ssl/private/private.key CustomLog /var/log/apache2/access.log combined ServerSignature On 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>

我的/etc/apache2/httpd.conf是空白的

目录/etc/apache2/conf.d没有任何内容,只有一个文件(字符集)

/etc/apache2/conf.dcharset的内容

# Read the documentation before enabling AddDefaultCharset. # In general,it is only a good idea if you kNow that all your files # have this encoding. It will override any encoding given in the files # in Meta http-equiv or xml encoding tags. #AddDefaultCharset UTF-8

我的Apache的error.log

[Wed Jun 03 00:12:31 2009] [error] [client 216.168.43.234] client sent HTTP/1.1 request without hostname (see RFC2616 section 14.23): /w00tw00t.at.ISC.SANS.DFind:) [Wed Jun 03 05:03:51 2009] [error] [client 99.247.237.46] File does not exist: /var/www/site/trunk/html/favicon.ico [Wed Jun 03 05:03:54 2009] [error] [client 99.247.237.46] File does not exist: /var/www/site/trunk/html/favicon.ico [Wed Jun 03 05:13:48 2009] [error] [client 99.247.237.46] File does not exist: /var/www/site/trunk/html/favicon.ico [Wed Jun 03 05:13:51 2009] [error] [client 99.247.237.46] File does not exist: /var/www/site/trunk/html/favicon.ico [Wed Jun 03 05:13:54 2009] [error] [client 99.247.237.46] File does not exist: /var/www/site/trunk/html/favicon.ico [Wed Jun 03 05:13:57 2009] [error] [client 99.247.237.46] File does not exist: /var/www/site/trunk/html/favicon.ico [Wed Jun 03 05:17:28 2009] [error] [client 99.247.237.46] File does not exist: /var/www/site/trunk/html/favicon.ico [Wed Jun 03 05:26:23 2009] [notice] caught SIGWINCH,shutting down gracefully [Wed Jun 03 05:26:34 2009] [notice] Apache/2.2.8 (Ubuntu) PHP/5.2.4-2ubuntu5.6 with Suhosin-Patch mod_ssl/2.2.8 OpenSSL/0.9.8g configured -- resuming normal operations [Wed Jun 03 06:03:41 2009] [notice] caught SIGWINCH,shutting down gracefully [Wed Jun 03 06:03:51 2009] [notice] Apache/2.2.8 (Ubuntu) PHP/5.2.4-2ubuntu5.6 with Suhosin-Patch mod_ssl/2.2.8 OpenSSL/0.9.8g configured -- resuming normal operations [Wed Jun 03 06:25:07 2009] [notice] caught SIGWINCH,shutting down gracefully [Wed Jun 03 06:25:17 2009] [notice] Apache/2.2.8 (Ubuntu) PHP/5.2.4-2ubuntu5.6 with Suhosin-Patch mod_ssl/2.2.8 OpenSSL/0.9.8g configured -- resuming normal operations [Wed Jun 03 12:09:25 2009] [error] [client 61.139.105.163] File does not exist: /var/www/site/trunk/html/fastenv [Wed Jun 03 15:04:42 2009] [notice] Graceful restart requested,doing restart [Wed Jun 03 15:04:43 2009] [notice] Apache/2.2.8 (Ubuntu) PHP/5.2.4-2ubuntu5.6 with Suhosin-Patch mod_ssl/2.2.8 OpenSSL/0.9.8g configured -- resuming normal operations [Wed Jun 03 15:29:51 2009] [error] [client 99.247.237.46] File does not exist: /var/www/site/trunk/html/favicon.ico [Wed Jun 03 15:29:54 2009] [error] [client 99.247.237.46] File does not exist: /var/www/site/trunk/html/favicon.ico [Wed Jun 03 15:30:32 2009] [error] [client 99.247.237.46] File does not exist: /var/www/site/trunk/html/favicon.ico [Wed Jun 03 15:45:54 2009] [notice] caught SIGWINCH,shutting down gracefully [Wed Jun 03 15:46:05 2009] [notice] Apache/2.2.8 (Ubuntu) PHP/5.2.4-2ubuntu5.6 with Suhosin-Patch mod_ssl/2.2.8 OpenSSL/0.9.8g configured -- resuming normal operations

如何让Apache发送500的PHP错误的情况下?

我如何在Nginx中使用.htaccess文件

htaccess自动检测域名

在Windows 8.1上安装PHP 5.6后,Apache 2.2无法启动

如何检测mod_rewrite没有apache_get_modules()?

温科说,

RewriteLog "/tmp/rewrite.log" RewriteLogLevel 9

并看看那个文件。

否则,下面是我们用于从zirconium.zrs.hr/~zatemas重定向到zatemas.zrs.hr的代码:

RewriteEngine on # For sites running on a port other than 80 RewriteCond %{HTTP_HOST} !^zatemas.zrs.hr [NC] RewriteCond %{HTTP_HOST} !^$ RewriteCond %{SERVER_PORT} !^80$ RewriteRule ^/~zatemas/(.*) http://zatemas.zrs.hr:%{SERVER_PORT}/$1 [L,R] # And for a site running on port 80 RewriteCond %{HTTP_HOST} !^192.168.1.24 [NC] RewriteCond %{HTTP_HOST} !^zatemas.zrs.hr [NC] RewriteCond %{HTTP_HOST} !^$ RewriteRule ^/~zatemas/(.*) http://zatemas.zrs.hr/$1 [L,R]

我在网上看到,人们主要通过查看端口是否为443来检测HTTPS。mod_rewrite文档说应该有一个变量HTTPS设置为打开或关闭,适当的 – 我假设你RewriteCond %{HTTPS} ^on$ to RewriteCond %{HTTPS} ^on$做RewriteCond %{HTTPS} ^on$测试它是否开启。

另外请注意:如果您访问用户主目录中的文件,URL重写的.htaccess指令不能很好地工作,例如example.com/~username/。 不过,根据你的情况,这不应该打扰你。 我上面的代码放在主服务器配置下的VirtualHost部分(更确切地说,在/etc/apache2/sites-enabled/000-default ,但这是debian特定的,并在主配置合并)。

你可以很容易地测试你的htaccess是否被读取:

把垃圾放进去,就像:

Options +FollowSymLinks This is garbage RewriteEngine on RewriteCond %{HTTP_HOST} ^www.(.*) [NC] RewriteRule (.*) //%1/$1 [L,R=301]

如果你得到一个500错误(内部服务器错误),那么它正在被读取。

如果是这样,你应该在主服务器配置(而不是.htaccess)中启用RewriteLog,如下所示:

RewriteLog "/tmp/rewrite.log" RewriteLogLevel 9

然后检查文件/tmp/rewrite.log看看发生了什么。 报告结果。

(堆栈溢出不是一个好的调试媒介,IRC更好,尝试#apache@irc.freenode.net)

祝你好运。

在我的情况下,我改变了httpd.conf:

AllowOverride无

AllowOverride全部

它的工作。

RewriteEngine on RewriteCond %{HTTPS} =on RewriteCond %{HTTP_HOST} ^www.(.*) [NC] RewriteRule ^(.*)$ https://%1$1 [L,R=301] RewriteCond %{HTTP_HOST} ^www.(.*) [NC] RewriteRule ^(.*)$ http://%1$1 [L,R=301]

从其他答案两个轻微的变化:

RewriteRule的%1反向引用从最后匹配的RewriteCond ,因此在主机名中检查www 之前必须检查HTTPS。

%1$1在中间不需要斜线,因为你可以从RewriteRule的路径匹配中获得。

最后一条建议:由于您可以控制Apache主配置中的VirtualHost部分,因此将这些规则放在那里会更快。 另外,你需要把它们分开,把普通的HTTP分为*:80和HTTPS分别放在*:443,这意味着你可以完全删除RewriteCond %{HTTPS} =on ,因为它只适用于那个虚拟主机的请求。

这听起来像你说你的mod_rewrite根本不工作。 这里有几件事要尝试:

你说这是启用,但提供的信息:

root@s15348441:/etc/apache2/mods-available# more rewrite.load Loadmodulee rewrite_module /usr/lib/apache2/modules/mod_rewrite.so

只是显示在“mods-available”文件夹下,这意味着它被安装,但不一定打开。 如果启用,它应该在“mods-enabled”文件夹下进行符号链接(如果不存在,您需要对其进行修改 )

如果启用,并且已经重新启动,下一步将是启用mod重写的日志记录功能 ; 这是一个很好的调试工具。

编辑添加:您可以将mod重写移到基本配置。 如果你有权访问它,建议把你的配置放在基本部分(见这里 )。 确定它是否与mod_rewrite有关(比如你的allowoverrides变得困惑)或纯粹是一个htaccess问题也更容易。

继续 :(@ Vinko Vrsalovic是正确的,这是一个很难调试的媒介)如果你把它移到你的基本配置,它仍然没有工作,那么我们到了一些东西,你已经消除了.htaccess部分。 你应该发布新的配置,以及重写日志。 如果你没有得到一个重写日志,那么1)你的配置没有被加载(需要重新启动apache)或者2)你不打你认为你的配置部分

首先,检查确保mod_rewrite实际上正在加载。 你可以用apache2ctl来做到这一点:

[root@host ~]# apache2ctl -t -D DUMP_MODULES 2>&1 |grep rewrite rewrite_module (shared)

如果不是,那么你可能需要运行''a2enmod rewrite''

接下来,测试是否正在读取.htaccess文件。 我通常通过在.htaccess文件中添加一些垃圾,然后在浏览器中加载该目录中的一个页面,并验证我得到一个500错误

正如其他人所提到的,如果你有能力直接修改你的Apache配置,你应该把重写规则放在那里,而不是放在.htaccess文件中,因为效率不高。 Apache必须首先决定在哪个目录中查找.htaccess文件,然后读取它,然后执行重写。 如果在VirtualHost指令中指定了RewriteRules,那么它可以在找到.htaccess文件之前执行它们。 在VirtualHost中指定它们也意味着正在读取.htaccess文件并不重要。 它看起来像这样:

<VirtualHost *:80> .... existing config .... RewriteEngine on RewriteCond %{HTTP_HOST} ^www.(.*) [NC] RewriteRule (.*) http://%1/$1 [L,R=301] </VirtualHost> <VirtualHost *:443> .... existing config .... RewriteEngine on RewriteCond %{HTTP_HOST} ^www.(.*) [NC] RewriteRule (.*) https://%1/$1 [L,R=301] </VirtualHost>

上述解决方案都不适合我。 我运行CentOS使用每个目录上下文为Apache …没有VirtualHosts或任何东西。 没有任何我尝试工作,直到我注意到NameVirtualHost默认情况下在我的配置…关闭后,一切似乎工作A – 确定。

我有同样的问题,这浪费了我5个小时来修复。

所以为了使用mod_rewrite,你可以在终端中输入以下命令:

a2enmod rewrite

然后重新启动你的Apache。

我在使用新的CentOS 6安装mod_rewrite时遇到了问题。 没有任何工作,直到我不小心看到有两个AllowOverride内httpd.conf 。 一个在<Directory />里面,另一个在<Directory "/var/www/html"> 。 我将这两个值都更改为全部 ,然后它的工作。 希望它可以帮助别人!

PS我没有使用虚拟主机

我有一个类似的问题..Mod重写启用,.htaccess权限是正确的,AllowOverride设置为所有,但.htaccess不被读取。 经过几个小时的痛苦和寻找答案这是我的问题是:(希望这可以帮助任何人)

除了我正在测试的另一个虚拟主机站点之外,我还启用了另一个虚拟主机站点,它共享了一个通用的目录根目录(/ var / www),另一个站点的AllowOverride被设置为none。 解决方案是简单地禁用其他网站与“a2dissite”

这个重写规则怎么样?

RewriteEngine On RewriteCond %{HTTP_HOST} ^www.example.com$ [NC] RewriteRule ^(.*)$ http://example.com/$1 [R=301,L]

对我来说,一个符号链接丢失了

ln -s /etc/apache2/mods-available/rewrite.load /etc/apache2/mods-enabled/rewrite.load

试试这个小窍门:

RewriteEngine on RewriteCond %{HTTPS}s/%{HTTP_HOST} ^(on(s)|[^/]+)/www.(.+) [NC] RewriteRule ^ http%2://%3%{REQUEST_URI} [L,R=301]

或这个:

RewriteEngine on RewriteCond %{HTTP_HOST} ^www.(.*) [NC] RewriteCond %{HTTP_PORT} =443 RewriteRule (.*) https://%1/$1 [L,R=301] RewriteCond %{HTTP_HOST} ^www.(.*) [NC] RewriteRule (.*) http://%1/$1 [L,R=301]

什么是.htaccess文件的文件权限?

我不确定,但我认为它需要644。

我有类似的问题,这是为我工作。

在你的httpd.conf中,在虚拟主机下,确保你有两个:

serverName domain.com

serverAlias http://www.domain.com

VirtualHost *:80 AND VirtualHost *:443

总结

以上是小编为你收集整理的.htaccess不工作(mod_rewrite)全部内容。

如果觉得小编网站内容还不错,欢迎将小编网站推荐给好友。

.htaccess不起作用(mod_rewrite)

.htaccess不起作用(mod_rewrite)

我没有运气让我的.htaccess与mod_rewrite一起工作。基本上,我要做的就是从“
http://www.example.com ”和“
https://www.example.com ”中删除“ www ”。

如果我缺少任何内容(conf文件等,请通知我,我将对此进行更新)

这是我的.htaccess文件(位于@ / var / www / site / trunk / html /)

Options +FollowSymLinksRewriteEngine onRewriteCond %{HTTP_HOST} ^www\.(.*) [NC]RewriteRule (.*) //%1/$1 [L,R=301]

我的mod_rewrite已启用:

root@s15348441:/etc/apache2/mods-available# more rewrite.loadLoadModule rewrite_module /usr/lib/apache2/modules/mod_rewrite.so

我的Apache配置文件:

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 "/var/log/apache2/foo.log"# with ServerRoot set to "" will be interpreted by the# server as "//var/log/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.1/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.##<IfModule !mpm_winnt.c>#<IfModule !mpm_netware.c>LockFile /var/lock/apache2/accept.lock#</IfModule>#</IfModule>## 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 15#### 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# MaxClients: maximum number of simultaneous client connections# 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# MaxRequestsPerChild: maximum number of requests a server process serves<IfModule mpm_worker_module>    StartServers          2    MaxClients          150    MinSpareThreads      25    MaxSpareThreads      75     ThreadsPerChild      25    MaxRequestsPerChild   0</IfModule># These need to be set in /etc/apache2/envvarsUser ${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</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 /var/log/apache2/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 /etc/apache2/mods-enabled/*.loadInclude /etc/apache2/mods-enabled/*.conf# Include all the user configurations:Include /etc/apache2/httpd.conf# Include ports listingInclude /etc/apache2/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 "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combinedLogFormat "%h %l %u %t \"%r\" %>s %b" commonLogFormat "%{Referer}i -> %U" refererLogFormat "%{User-agent}i" agent## ServerTokens# This directive configures what you return as the Server HTTP response# Header. The default is ''Full'' which sends information about the OS-Type# and compiled in modules.# Set to one of:  Full | OS | Minor | Minimal | Major | Prod# where Full conveys the most information, and Prod the least.#ServerTokens Full## Optionally add a line containing the server version and virtual host# name to server-generated pages (internal error documents, FTP directory # listings, mod_status and mod_info output etc., but not CGI generated # documents or custom error documents).# Set to "EMail" to also include a mailto: link to the ServerAdmin.# Set to one of:  On | Off | EMail#ServerSignature On## 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://www.example.com/subscription_info.html### Putting this all together, we can internationalize error responses.## We use Alias to redirect any /error/HTTP_<error>.html.var response to# our collection of by-error message multi-language collections.  We use # includes to substitute the appropriate text.## You can modify the messages'' appearance without changing any of the# default HTTP_<error>.html.var files by adding the line:##   Alias /error/include/ "/your/include/path/"## which allows you to create your own set of files by starting with the# /usr/share/apache2/error/include/ files and copying them to /your/include/path/, # even on a per-VirtualHost basis.  The default include files will display# your Apache version number and your ServerAdmin email address regardless# of the setting of ServerSignature.## The internationalized error documents require mod_alias, mod_include# and mod_negotiation.  To activate them, uncomment the following 30 lines.#    Alias /error/ "/usr/share/apache2/error/"##    <Directory "/usr/share/apache2/error">#        AllowOverride None#        Options IncludesNoExec#        AddOutputFilter Includes html#        AddHandler type-map var#        Order allow,deny#        Allow from all#        LanguagePriority en cs de es fr it nl sv pt-br ro#        ForceLanguagePriority Prefer Fallback#    </Directory>##    ErrorDocument 400 /error/HTTP_BAD_REQUEST.html.var#    ErrorDocument 401 /error/HTTP_UNAUTHORIZED.html.var#    ErrorDocument 403 /error/HTTP_FORBIDDEN.html.var#    ErrorDocument 404 /error/HTTP_NOT_FOUND.html.var#    ErrorDocument 405 /error/HTTP_METHOD_NOT_ALLOWED.html.var#    ErrorDocument 408 /error/HTTP_REQUEST_TIME_OUT.html.var#    ErrorDocument 410 /error/HTTP_GONE.html.var#    ErrorDocument 411 /error/HTTP_LENGTH_REQUIRED.html.var#    ErrorDocument 412 /error/HTTP_PRECONDITION_FAILED.html.var#    ErrorDocument 413 /error/HTTP_REQUEST_ENTITY_TOO_LARGE.html.var#    ErrorDocument 414 /error/HTTP_REQUEST_URI_TOO_LARGE.html.var#    ErrorDocument 415 /error/HTTP_UNSUPPORTED_MEDIA_TYPE.html.var#    ErrorDocument 500 /error/HTTP_INTERNAL_SERVER_ERROR.html.var#    ErrorDocument 501 /error/HTTP_NOT_IMPLEMENTED.html.var#    ErrorDocument 502 /error/HTTP_BAD_GATEWAY.html.var#    ErrorDocument 503 /error/HTTP_SERVICE_UNAVAILABLE.html.var#    ErrorDocument 506 /error/HTTP_VARIANT_ALSO_VARIES.html.var# Include of directories ignores editors'' and dpkg''s backup files,# see README.Debian for details.# Include generic snippets of statementsInclude /etc/apache2/conf.d/# Include the virtual host configurations:Include /etc/apache2/sites-enabled/

我在Apache上www的默认配置文件

NameVirtualHost *:80<VirtualHost *:80>    ServerAdmin info@example.com    #SSLEnable    #SSLVerifyClient none    #SSLCertificateFile /usr/local/ssl/crt/public.crt      #SSLCertificateKeyFile /usr/local/ssl/private/private.key    DocumentRoot /var/www/site/trunk/html    <Directory />        Options FollowSymLinks        AllowOverride all    </Directory>    <Directory /var/www/site/trunk/html>        Options Indexes FollowSymLinks MultiViews        AllowOverride all        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 /var/log/apache2/error.log    # Possible values include: debug, info, notice, warn, error, crit,    # alert, emerg.    LogLevel warn    CustomLog /var/log/apache2/access.log combined    ServerSignature On    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>

我的SSL配置文件

NameVirtualHost *:443<VirtualHost *:443>    ServerAdmin info@example.com    #SSLEnable    #SSLVerifyClient none    #SSLCertificateFile /usr/local/ssl/crt/public.crt      #SSLCertificateKeyFile /usr/local/ssl/private/private.key    DocumentRoot /var/www/site/trunk/html    <Directory />        Options FollowSymLinks        AllowOverride all    </Directory>    <Directory /var/www/site/trunk/html>        Options Indexes FollowSymLinks MultiViews        AllowOverride all        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 /var/log/apache2/error.log    # Possible values include: debug, info, notice, warn, error, crit,    # alert, emerg.    LogLevel warn    SSLEngine On        SSLCertificateFile /usr/local/ssl/crt/public.crt        SSLCertificateKeyFile /usr/local/ssl/private/private.key    CustomLog /var/log/apache2/access.log combined    ServerSignature On    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>

我的/etc/apache2/httpd.conf为空

目录/etc/apache2/conf.d中只有一个文件(字符集),里面没有任何内容

/etc/apache2/conf.dcharset的内容

# Read the documentation before enabling AddDefaultCharset.# In general, it is only a good idea if you know that all your files# have this encoding. It will override any encoding given in the files# in meta http-equiv or xml encoding tags.#AddDefaultCharset UTF-8

我的Apache error.log

[Wed Jun 03 00:12:31 2009] [error] [client 216.168.43.234] client sent HTTP/1.1 request without hostname (see RFC2616 section 14.23): /w00tw00t.at.ISC.SANS.DFind:)[Wed Jun 03 05:03:51 2009] [error] [client 99.247.237.46] File does not exist: /var/www/site/trunk/html/favicon.ico[Wed Jun 03 05:03:54 2009] [error] [client 99.247.237.46] File does not exist: /var/www/site/trunk/html/favicon.ico[Wed Jun 03 05:13:48 2009] [error] [client 99.247.237.46] File does not exist: /var/www/site/trunk/html/favicon.ico[Wed Jun 03 05:13:51 2009] [error] [client 99.247.237.46] File does not exist: /var/www/site/trunk/html/favicon.ico[Wed Jun 03 05:13:54 2009] [error] [client 99.247.237.46] File does not exist: /var/www/site/trunk/html/favicon.ico[Wed Jun 03 05:13:57 2009] [error] [client 99.247.237.46] File does not exist: /var/www/site/trunk/html/favicon.ico[Wed Jun 03 05:17:28 2009] [error] [client 99.247.237.46] File does not exist: /var/www/site/trunk/html/favicon.ico[Wed Jun 03 05:26:23 2009] [notice] caught SIGWINCH, shutting down gracefully[Wed Jun 03 05:26:34 2009] [notice] Apache/2.2.8 (Ubuntu) PHP/5.2.4-2ubuntu5.6 with Suhosin-Patch mod_ssl/2.2.8 OpenSSL/0.9.8g configured -- resuming normal operations[Wed Jun 03 06:03:41 2009] [notice] caught SIGWINCH, shutting down gracefully[Wed Jun 03 06:03:51 2009] [notice] Apache/2.2.8 (Ubuntu) PHP/5.2.4-2ubuntu5.6 with Suhosin-Patch mod_ssl/2.2.8 OpenSSL/0.9.8g configured -- resuming normal operations[Wed Jun 03 06:25:07 2009] [notice] caught SIGWINCH, shutting down gracefully[Wed Jun 03 06:25:17 2009] [notice] Apache/2.2.8 (Ubuntu) PHP/5.2.4-2ubuntu5.6 with Suhosin-Patch mod_ssl/2.2.8 OpenSSL/0.9.8g configured -- resuming normal operations[Wed Jun 03 12:09:25 2009] [error] [client 61.139.105.163] File does not exist: /var/www/site/trunk/html/fastenv[Wed Jun 03 15:04:42 2009] [notice] Graceful restart requested, doing restart[Wed Jun 03 15:04:43 2009] [notice] Apache/2.2.8 (Ubuntu) PHP/5.2.4-2ubuntu5.6 with Suhosin-Patch mod_ssl/2.2.8 OpenSSL/0.9.8g configured -- resuming normal operations[Wed Jun 03 15:29:51 2009] [error] [client 99.247.237.46] File does not exist: /var/www/site/trunk/html/favicon.ico[Wed Jun 03 15:29:54 2009] [error] [client 99.247.237.46] File does not exist: /var/www/site/trunk/html/favicon.ico[Wed Jun 03 15:30:32 2009] [error] [client 99.247.237.46] File does not exist: /var/www/site/trunk/html/favicon.ico[Wed Jun 03 15:45:54 2009] [notice] caught SIGWINCH, shutting down gracefully[Wed Jun 03 15:46:05 2009] [notice] Apache/2.2.8 (Ubuntu) PHP/5.2.4-2ubuntu5.6 with Suhosin-Patch mod_ssl/2.2.8 OpenSSL/0.9.8g configured -- resuming normal operations

答案1

小编典典

正如文科所说,

RewriteLog "/tmp/rewrite.log"RewriteLogLevel 9

并查看该文件。

否则,这是我们用来从zirconium.zrs.hr/~zatemas重定向到zatemas.zrs.hr的代码:

RewriteEngine on# For sites running on a port other than 80RewriteCond %{HTTP_HOST}   !^zatemas\.zrs\.hr [NC]RewriteCond %{HTTP_HOST}   !^$RewriteCond %{SERVER_PORT} !^80$RewriteRule ^/~zatemas/(.*)         http://zatemas.zrs.hr:%{SERVER_PORT}/$1 [L,R]# And for a site running on port 80RewriteCond %{HTTP_HOST}   !^192\.168\.1\.24 [NC]RewriteCond %{HTTP_HOST}   !^zatemas\.zrs\.hr [NC]RewriteCond %{HTTP_HOST}   !^$RewriteRule ^/~zatemas/(.*)         http://zatemas.zrs.hr/$1 [L,R]

我在网上看到人们主要是通过查看端口是否为443来检测HTTPS的。mod_rewrite文档说应该适当地将HTTPS变量设置为on或off-
我想您RewriteCond %{HTTPS} ^on$要测试一下它是否打开。

另请注意:.htaccess如果要访问用户主目录中的文件(例如example.com/~username/),则URL重写指令不能很好地工作。但是,这不会根据您的情况困扰您。我上面的代码位于部分的主服务器配置中VirtualHost(更确切地说,在中/etc/apache2/sites-enabled/000-default,但这是debian特定的,并在主配置中合并)。

我们今天的关于apache mod_rewrite无法与.htaccess文件一起使用apache rewrite模块的分享已经告一段落,感谢您的关注,如果您想了解更多关于.htaccess mod_rewrite子目录到URL参数、.htaccess mod_rewrite的解释、.htaccess不工作(mod_rewrite)、.htaccess不起作用(mod_rewrite)的相关信息,请在本站查询。

本文标签: