Articles of .htaccess

使用SSL启用/允许来自不同服务器的代理

我在服务器A上有一个node.js应用程序( http://sub.domainA )。 我的客户希望在不redirect的情况下使用此解决scheme。 服务器A上的node.js服务的.htaccessconfiguration如下所示。 RewriteEngine On RewriteRule ^(.*) http://localhost:61361/$1 [P] 我试过了: RewriteEngine On RewriteRule ^(.*) http://sub.domainA/$1 [P] 但我得到了一个403禁止。 问题1 – 已解决:如何让我的客户服务器访问此节点服务? 编辑:得到这个工作已经。 这似乎是代理 RewriteEngine On RewriteRule ^(.*) http://sub.domainA/$1 [P] 没有build立一个代理服务器上的子目录,而是build立一个子目录的兄弟目录的HTML目录。 所以我最终将.htaccess复制到html文件夹: RewriteEngine On RewriteRule ^(.*) http://localhost:61361/$1 [P] 问题2如果我将证书存储在两台服务器上,是否也可以使用https(SSL)连接? 如何在服务器A上存储证书 服务器B RewriteEngine On RewriteCond %{HTTP_HOST} ^serverB\.de RewriteRule ^(.*) http://sub.serverA.de/$1 [P] RewriteCond %{HTTPS_HOST} ^serverB\.de RewriteRule ^(.*) […]

mod – 重写/ .htaccess问题与Apache 2.4.12

文件结构如下 公共文件: /home/usrname/public_html CGI BIN,运行软件: /home/usrname/public_html/cgi-bin 私有文件: /home/usrname/public_html/_private 数据库: /home/usrname/public_html/_private/data 我想要做的是将下面的代码从Apache 1.3.42转换为Apache 2.4.12 .htaccess文件,在SSLpath中看起来好像有一些变化,我主要是挂断了。 当您尝试使用SSLpath的任何文档时,我都会看到_privatepath,而不是HTML源代码中的public_htmlpath,如CSS,js图像等 我也有一个权限问题,这是要求我在SSL模式下login,这一定是由于其他.htaccess文件之一。 它应该是简单的,但不知何故我没有得到正确的联机规则。 这里是每个.htaccess文件中的代码行。 公共文件:/ home / usrname / public_html RewriteEngine On RewriteCond %{HTTP_HOST} ^99\.00\.99\.000$ RewriteRule ^/?(.*)$ http://www.example.com/$1 [R=301,L] RewriteCond %{HTTP_HOST} ^example.com$ RewriteRule ^/?(.*)$ http://www.example.com/$1 [R=301,L] RewriteCond /home/usrname/public_html/%{REQUEST_FILENAME} -f RewriteRule ^(.+) /home/usrname/public_html/$1 [L] RewriteCond /home/usrname/public_html/_private/%{REQUEST_FILENAME} -f RewriteRule ^(.+) /home/usrname/public_html/_private/$1 [L] RewriteRule […]

切换DNS正在打破httpsredirect

我们(我的公司)最近把我们的名字服务器从GoDaddy切换到亚马逊。 我们的网站仍然在GoDaddy托pipe。 在切换名称服务器之前,一切正常。 我们有一个网站https://example.com ,如果它最初是以http身份input的,它将redirect到https 。 我们有第二个网站位于example.com/second并在https://second.com解决。 这与从http请求redirect到https的第一个站点的作用相同。 现在我们切换了名称服务器, https不再parsing。 如果我去http://second.com/non-http-part不需要redirect,它的工作原理。 但是进入它redirect的索引,导致页面根本无法加载。 所有的https://example.com都不加载。 我们已经联系了亚马逊,他们认为这是.htaccess文件的问题。 这对我来说似乎很奇怪,因为这听起来更像是一个DNS问题,但这不是我的专业领域,所以我完全可能是错的。 以下是我们的.htaccess文件。 rewriteengine on rewritecond %{HTTPS} off rewritecond %{HTTP_HOST} ^www.example.com$ [OR] rewritecond %{HTTP_HOST} ^example.com$ rewriterule ^(.*)$ "https\:\/\/example\.com\/$1" [R=301,L] #—[SITE PASSWORD PROECTION] #AuthName "Restricted Area" #AuthType Basic #AuthUserFile /home/some_user/public_html/example/includes/security/.htpasswd #AuthGroupFile /dev/null #require valid-user #—[CENTRALIZED REQUESTED] <IfModule mod_rewrite.c> RewriteBase / </IfModule> #—[OPTIONS AND […]

拒绝访问符号链接的源代码

我有foo/bar.txt应该是403,而且我也有foo-hashed/hash/bar.txt这是foo/bar.txt的符号链接,应该可以访问。 foo/.htaccess包含 Order deny,allow Deny from all 这是很好,但我不能让散列的文件可以访问。 我在foo尝试了各种各样的Options FollowSymLinks ,但是没有太大的成功。

将.Htaccess重写规则转换为Nginx

我有以下的Apache重写规则,我试图转换为与Nginx的工作。 RewriteRule ^(.*)\/(.*)-(\d{4})(?:-(.*))?$ album.php?artist=$1&album=$2&releaseyear=$3&extra=$4 我希望它只是 location / { rewrite "^/(.*)\/(.*)-(\d{4})(?:-(.*))?$" /album.php?artist=$1&album=$2&releaseyear=$3&extra=$4; } 虽然这不起作用,但是我的重写规则的nginx版本有没有明确的问题?

CentOS – Apache HTTPS不能读取htaccess

我一直坚持在CentOS上重写apache的问题。 如果我从HTTP加载我的网站,它工作正常。 重写规则工作。 一旦我将其更改为HTTPS,重写规则不起作用。 经过一些testing和浏览线程,我意识到,不知何故,如果从HTTPS访问网站的话,apache并没有拿起.htaccess文件。 我做的testing是在.htaccess文件中插入全部拒绝。 当我访问http://my.domain.com它显示Forbidden错误。 当我通过https://my.domain.com访问时,我仍然可以加载页面,这意味着.htaccess不被读取。 我检查了httpd.conf和ssl.conf,并确保AllowOverride All已设置。 还有其他地方我可以错过吗? 这是我的httpd.confconfiguration: <VirtualHost *:443> SSLEngine On SSLCertificateFile /etc/httpd/ssl/my.domain.crt SSLCertificateKeyFile /etc/httpd/ssl/my.domain.key SSLCACertificateFile /etc/httpd/ssl/caroot.crt ServerAdmin [email protected] ServerName my.domain.com ServerAlias my.domain.com DocumentRoot /var/www/my.domain.com/public_html/ <Directory /> Options FollowSymLinks AllowOverride All </Directory> <Directory /var/www/my.domain.com/public_html/> Options Indexes FollowSymLinks ExecCGI MultiViews #RewriteEngine on AllowOverride All Order allow,deny allow from all </Directory> ErrorLog […]

使用htaccess将IPredirect到域名

比方说,我有这个IP地址11.12.13.14和域example.com 。 现在我想要的是将用户从IP地址redirect到域名(但不更改域名到地址栏)。 所以当用户请求11.12.13.14/test时候应该打开exapmle.com/test而不是redirect到域名,在地址栏里它应该仍然是11.12.13.14/test 。 我已经看到这个问题redirect到其他域,但保持键入域 。 我不知道它是否有效,因为我没有testing它,但我想它是。 我使用的是Apache 14.04,所以有没有可以达到这个目的? 这是我所尝试过的 Options +FollowSymLinks -MultiViews RewriteEngine On RewriteBase / RewriteCond %{HTTP_HOST} ^ 11.12.13.14$ [NC] RewriteRule ^ http://www.example.com%{REQUEST_URI} [L,NE,P]

需要授权! – 401

我们有一个奇怪的问题,我们不知道是什么原因造成的问题。 随机,我们的一些访客得到以下错误: 需要授权! – 401.此服务器无法validation您是否有权访问请求的文档。 我们无法复制错误,但有些访问者在特定页面上反复出现此错误消息( http://www.hairproducts.com/view_product.php?product=COL-SAT104&fg )。 我们的网站是用PHP编写的,可以在Linux上运行。 在.htaccess,访问者应该被redirect到自定义的错误页面(我们testing它,它工作正常),但访客得到一个非定制的401错误消息。 我们testing了不同的位置和浏览器,但一直没有能够重现这个问题。 我们联系了我们的服务器pipe理员,但是他们坚持认为没有任何设置会给访问者造成这种错误。 我们检查了我们的PHP页面,没有发现任何可能导致此错误消息的内容。 所以现在我们被卡住了。 任何人都可以给我们一个什么可能会导致这样的问题的想法? 还有一个问题:外部JavaScript文件可以导致这样的问题,使整个页面显示401错误信息?

将NGINX转换成Apache重写规则

目前我在我的本地(Apache)做了一个项目设置,在NGINX里。 我在将规则从NGINX转换为.htaccess规则时遇到了麻烦。 有人能帮我把下面的规则转换成.htaccess规则。 location /test/ { set $store_code test; index index.html index.php; try_files $uri $uri/ @handler_test; expires 30d; } 提前感谢。

使用mod_rewriteredirect.htaccess的规则

我有一个PHP脚本根据查询从数据库dynamic生成内容。 用户可以从文本框中search用户名“mark”。 这些内容由PHP在www.domain.com/?username=mark提供,不过我希望用户看到提供的URL为www.domain.com/username/mark.html。 同样,用户可能会search一个configuration文件(整数)。 该内容在www.domain.com/?profile=2上生成。 我希望用户看到提供的URL为www.domain.com/profile/2.html。 这是可行的吗? 这是我的.htaccess文件: RewriteEngine On RewriteRule ^username/([^/]*)\.html$ /?username=$1 [L] RewriteRule ^realname/([^/]*)\.html$ /?realname=$1 [L] RewriteRule ^profile/([^/]*)\.html$ /?profile=$1 [L] Mod_rewrite已启用,但该文件似乎不工作。