Articles of .htaccess

如何使用或replace.htaccess文件?

总结 [OR]标志在不同的服务器上不一致。 下面的细节和问题。 我有一个Godaddy托pipe的网站,我编写了一个.htaccess文件的代码,将用户redirect到我的网站的https版本。 它工作很好。 <IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{HTTPS} off [OR] RewriteCond %{HTTP_HOST} !^www\. [NC] RewriteRule ^(.*)$ https://www\.firstsite\.com%{REQUEST_URI} [R=301,L] </IfModule> 我使用相同的.htaccess文件为networking解决scheme上托pipe的其他网站,它崩溃的网站。 它产生了这个错误。 此页面不起作用 www.secondsite.comredirect你太多次了。 ERR_TOO_MANY_REDIRECTS 我删除了networking解决scheme站点的[OR]标志,并且加载了没有错误的站点。 这是更新的代码。 <IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{HTTPS} off RewriteCond %{HTTP_HOST} !^www\. [NC] RewriteRule ^(.*)$ https://www\.secondsite\.com%{REQUEST_URI} [R=301,L] </IfModule> 不幸的是没有[OR]它不会根据第一个条件redirect, RewriteCond %{HTTPS} off 。 但是,它仍然基于第二个条件RewriteCond %{HTTP_HOST} !^www\. [NC] RewriteCond […]

需要帮助find我的.htaccess不被读取有什么问题

我试图通过.htaccess文件使用mod_rewrite,我有一个很大的问题,.htaccess文件似乎不被读取。 该机器正在运行Debian 5.0,它使用稳定的apache2软件包。 我遵循这个页面的指示: http : //www.debian-administration.org/articles/136 。 启用mod_rewrite是这样的: a2enmod rewrite 在我的/etc/apache2/apache2.conf文件中,我添加了这个: <Directory "/var/www"> AllowOverride ALL Options FollowSymLinks </Directory> 在根目录下,我创build了一个包含以下内容的.htaccess文件: RewriteEngine on RewriteRule ^test$ foo.html 我已经尝试了许多类似的问题的答案无济于事。 我访问foo.com/test时得到的错误消息是404页面未find。 所有文件都可以被大家阅读。 直接访问foo.html没有问题。 我也试图把垃圾放入另一个.htaccess来看看Apache是​​否会抱怨,没有任何改变。 也许我太累了! 谢谢

htaccess全部redirect到一个文件(本地主机除外)

我想redirect所有stream量到一个单一的.php网关文件,这个文件将执行身份validation,并使用ajax拉取请求的文件。 所以我需要一个像这样的stream.htaccess: if external request for any file redirect (or rewrite) to /gateway.php gateway.php然后需要能够访问该文件。 这是最好的想出来的是: RewriteEngine On RewriteBase / RewriteCond %{REMOTE_HOST} !^127\.0\.0\.1 RewriteCond %{REQUEST_URI} !/gateway\.php$ RewriteRule .* http://www.website.com/gateway.php?req=%{REQUEST_URI} [R=302,L] 这是工作,但是当gateway.php上的ajax尝试从另一个页面获取内容时,它从gateway.php获取内容(因为redirect)。 我需要以某种方式添加一个exception! 任何帮助将不胜感激!

处理程序for(null)返回无效结果代码70007 /导致错误500?

我得到这些错误在我的网站(PHP / Apache / Linux / MySQL的VPS)的一些页面间隔,似乎无法find任何可重复的情况: (null)的处理程序返回了无效的结果代码70007 要么 (null)处理程序返回无效的结果代码70014 它主要发生在完成文件(图像)上传的页面上。 然后它会导致500错误。 谷歌还没有回报任何结论,有没有人遇到这些错误?

Apache:在webdav中禁用*parsinghtaccess

我有以下目录布局: /var/www/ example.com/ logs/ html/ stuff/ Apacheconfiguration通常从/var/www/example.com/html 我已经configurationwebdav工作的urlhttps://example.com/server-admin并允许访问其他目录: <VirtualHost> … Alias /server-admin /var/www/example.com/ <Location /server-admin > Dav on AllowOverride None … 使用AllowOverride None我想禁用htaccess文件,以便他们不会中断webdav操作。 这种作品。 但是 :如果我上传一个语法错误的htaccess文件,一切都会崩溃,500内部服务器错误。 我猜即使这样的文件没有被使用,Apache仍然parsing它。 所以我尝试使用AccessFilename .davaccess来更改它,使其他名称,哪种工作,但不是在<Location>而是全局在<VirtualHost> 。 那么该怎么办? 如何禁用<Location> htaccess,或者如何更改布局才能使其工作?

.htaccess:允许来自本地networking的所有连接,但需要login外部

注意:这不是重复的,因为标记的post涉及旧版本的apache。 我已经尝试了该线程中的解决scheme,也是应该在更高版本上工作的解决scheme,但没有成功。 有几个问题和答案涉及到这个部分,但我还没有find这种types的情况。 我有一个网站,我想从我的10.0.0.0networking公开访问。 但是,当通过在路由器转发的外部地址访问它 – 我想.htaccess需要login。 我知道如何要求所有连接的密码,我有一个关于允许/禁止一个特定的地址或IP的想法。 但是我希望所有不在局域网上的IP都需要login/密码。 更新:Apache2版本2.2.22 以下是当我从答案中尝试解决scheme时发生的情况,有人声称这是重复的: AuthName "Authenticate" AuthType Basic AuthUserFile "/home/frank/.htpassword" Require valid-user Order allow,deny Allow from 10.0.0.44 Satisfy All 使用上面的.htaccess文件,通过外部地址访问被拒绝,句点。 没有login提示。 从特定的本地IP(.44),我得到login提示。 AuthName "Authenticate" AuthType Basic AuthUserFile "/home/frank/.htpassword" Require valid-user Order allow,deny Allow from 10.0.0.0/8 Satisfy All 有了以上内容,外部和内部连接都会提示login。 试图缩小问题的范围: 这是行不通的:(外部LAN地址都是允许的) Order Deny,Allow Deny from all Allow from 10.0.0.0/8 […]

如何更改一个IP地址的索引页?

我在我的网站上安装了另一个主题,我需要改进它。 我怎样才能更改索引文件只为我的IP地址? 我当前的htaccess文件: <IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{HTTP_HOST} ^example.com RewriteRule (.*) http://www.example.com/$1 [R=301,L] RewriteBase / RewriteRule ^index\.php$ – [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> 我需要将索引文件更改为index.WP.php为IP地址203.0.113.111 。 可能吗?

.htaccess不能正常工作(mod_rewrite)

编辑:我很确定我的.htaccess文件没有被执行,问题是不符合我的重写规则。 我没有任何运气让我的.htaccess与mod_rewrite工作。 基本上我所要做的就是从“ http://www.site.com ”和“ https://www.site.com ”中删除“www”。 如果有什么我失踪(conf文件等让我知道我会更新这个) 我jsut无法看到这里有什么错误…我正在使用1和1 VPS III虚拟专用服务器…任何人都有这个问题? 我正在使用Ubuntu 8.04服务器LTS。 这里是我的.htaccess文件(位于@ / var / www / site / trunk / html /) Options +FollowSymLinks RewriteEngine on RewriteCond %{HTTP_HOST} ^www\.(.*) [NC] RewriteRule (.*) //%1/$1 [L,R=301] 我的mod_rewrite已启用: 自动重新生成的sym链接在mods-available和/ usr / lib / apache2 / modules /目录下有mod_rewrite.so root@s15348441:/etc/apache2/mods-available# more rewrite.load LoadModule rewrite_module /usr/lib/apache2/modules/mod_rewrite.so root@s15348441:/var/log# apache2ctl […]

Apache服务器上的.htaccess文件中RewriteRules的优先级

我的.htaccess文件中有一些RewriteRules。 但是,只有删除了另一个特定的规则才能执行一个特定的规则,而不pipe我如何订购这两个规则。 这是似乎有“低”优先级的规则: RewriteRule ^([0-9]+)$ /beta/forward.php?id=$1 [L] 这是总是优先的规则: RewriteCond %{HTTP_HOST} ^domain1\.net$ [NC] RewriteRule ^(.*)$ http://domain2.net/$1 [R=301,L] domain1和domain2实际上都指向同一个网站。 所以,只要两个规则都在.htaccess文件中,我就可以访问 http://domain1.net/123 第二个规则首先执行,我得到两个redirect,首先http://domain2.net/123 ,然后(当主机名不符合第二个规则了)到http://domain2.net/beta/ forward.php?id = 123 。 我已经尝试修复第二条规则,所以它永远不会执行的只包含数字的url,但我一定是做错了,因为它仍然得到执行: RewriteCond %{HTTP_HOST} ^ domain1\.net$ [NC] RewriteRule ^(.*[^0-9]+.*)$ http://domain2.net/$1 [R=301,L] 只有从.htaccess文件中删除两行,我才能得到第一条规则来处理请求。 任何帮助将不胜感激。

强制https与Apache之前.htpasswd

我有这个在我的.htaccess文件 RewriteEngine On RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://www.myweb.com/phpmyadmin$1 [R,L] AuthUserFile /var/www/myweb/.htpasswd AuthGroupFile /dev/null AuthName "Sovereign Databases" AuthType Basic <Limit GET> require valid-user </Limit> 但每次我去http://www.myweb.com/phpmyadmin,.htpasswd提示我的凭据之前,我redirect到https://www.myweb.com/phpmyadmin 。 input我的用户名和密码后,我被redirect到https://www.myweb.com/phpmyadmin 。 问题是我不希望任何人通过http提交未encryption的用户名和密码。 如何强制用户通过https版本login,即使他们在http版本中input?