想了解使用.htaccess&mod_rewrite将“www”添加到HTTPSurl的新动态吗?本文将为您提供详细的信息,此外,我们还将为您介绍关于.htaccessmod_rewrite子目录到U
想了解使用.htaccess&mod_rewrite将“www”添加到HTTPSurl的新动态吗?本文将为您提供详细的信息,此外,我们还将为您介绍关于.htaccess mod_rewrite子目录到URL参数、.htaccess mod_rewrite的解释、.htaccess – Nginx:将非www重定向到https上的www、.htaccess不工作(mod_rewrite)的新知识。
本文目录一览:- 使用.htaccess&mod_rewrite将“www”添加到HTTPSurl
- .htaccess mod_rewrite子目录到URL参数
- .htaccess mod_rewrite的解释
- .htaccess – Nginx:将非www重定向到https上的www
- .htaccess不工作(mod_rewrite)
使用.htaccess&mod_rewrite将“www”添加到HTTPSurl
我有这个困境。 通过以下代码,我可以在任何非SSLurl上强制使用SSL,但是当用户(以及Google的结果)将用户带到http://mysite.co.za时,我们遇到了问题,因为url会被重写到https://mysite.co.za
由于我的证书绑定到www.mysite.co.za这个事实,它会立即抛出一个安全错误,因为URL中缺less“www”。
有人可以指出一种方法,当域名开始HTTPS而不是HTTP时,将www添加到域?
非常感激。
Wamp,SlimPHP和Htacess
htaccess重写规则以无限循环结束
在没有子域的子文件夹中安装多个laravel项目
将非WWWredirect到WWW URL
子域名在不改变地址栏中的URL的情况下使用htaccessredirect
而添加https://的当前代码如下所示:
RewriteCond %{HTTP_HOST} !^www. RewriteCond %{HTTPS}s ^on(s)| RewriteRule ^ http%1://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
redirect到https和www在Apache中的单一redirect
.htaccess在Linux(Debian)Apache2中不起作用
标题添加Content-disposition“附件”会导致内部服务器错误
自定义.htaccess移动redirect
htaccess 301redirectURL的参数
有人可以指出一种方法,当域名开始HTTPS而不是HTTP时,将www添加到域?
所以你想这个:
如果主机不以www开头:
如果连接是安全的,什么都不要做。 在这种情况下,你已经拧了,因为用户已经看到主机不匹配的警告。
如果连接不安全,则重定向到https://www.% {HTTP_HOST}%{REQUEST_URI}
你目前的规则:
RewriteCond %{HTTP_HOST} !^www. RewriteCond %{HTTPS}s ^on(s)| RewriteRule ^ http%1://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
这个规则失败了,因为无论连接是否安全,它都会添加www。 此外,它保持原来的方式http(不转发https://)。
满足上述要求的规则是
#if the host does not start with www. RewriteCond %{HTTP_HOST} !^www. #and the connection is not secure RewriteCond %{HTTPS} ="" #forward RewriteRule ^ https://www.%{HTTP_HOST}%{REQUEST_URI} [R=301]
L标志是不必要的,因为重定向结束了重写。
这不能回答你的问题,但这肯定是解决问题的方法:
来自Digicert的SSL证书将默认保护相同域的WWW和非WWW变体。 我不知道有任何其他的主流证书颁发机构 – Digicert SSL Plus
总结
以上是小编为你收集整理的使用.htaccess&mod_rewrite将“www”添加到HTTPSurl全部内容。
如果觉得小编网站内容还不错,欢迎将小编网站推荐给好友。
.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的解释
我一直在试图让这个国防部重写的事情。 基本上我想要:
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&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 – Nginx:将非www重定向到https上的www
如果我在https上,Nginx无法将非www重定向到www:
https://domain.com至https://www.domain.com
我在.conf中的设置是:
server {
listen 80;
server_name www.domain.com domain.com;
return 301 https://www.domain.com$request_uri;
}
server {
listen 443;
server_name domain.com;
return 301 https://www.domain.com$request_uri;
}
server {
listen IP_ADDRESS:443 ssl;
server_name www.domain.com;
...
}
http://domain.com到https://www.domain.com和http://www.domain到https://www.domain.com工作,但https上的非www到www不起作用.
如果我在第二个服务器块上添加了IP_ADDRESS,我在Chrome中出现错误(SSL错误),并且(www和非www)都停止工作.
更新:
感谢Steffen(以下回答),我将自签名证书更新为* .domain.com而不是domain.com.
.conf文件已在以下格式更新:
ssl_certificate /etc/Nginx/ssl/server.crt;
ssl_certificate_key /etc/Nginx/ssl/server.key;
server {
listen 80;
server_name www.domain.com domain.com;
return 301 https://www.domain.com$request_uri;
}
server {
listen 443 ssl;
server_name domain.com;
return 301 https://www.domain.com$request_uri;
}
server {
listen 443 ssl;
server_name www.domain.com;
...
}
解决方法:
这可能是因为您没有domain.com的证书,但只有www.domain.com或* .domain.com.有关详细信息,请参阅Nginx redirect http://www and naked http/https to https://www或https://serverfault.com/questions/579916/nginx-redirect-https-www-to-https-non-www-without-untrusted-connection-warn/579917#579917.
.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将“www”添加到HTTPSurl的分享就到这里,谢谢您的阅读,如果想了解更多关于.htaccess mod_rewrite子目录到URL参数、.htaccess mod_rewrite的解释、.htaccess – Nginx:将非www重定向到https上的www、.htaccess不工作(mod_rewrite)的相关信息,可以在本站进行搜索。
本文标签: