我想创build一个mod_rewrite RewriteRule是独立于网页的安装位置。 我想在.htaccess文件中定义重写规则。 我们以此为例: RewriteEngine on RewriteRule ^(.*)\.html html.php 有了这个规则,我想把所有* .html请求映射到一个位于web根目录下的html.php脚本。 问题是,webroot的公共基础URL可能会改变。 所以Web根可以位于http://www.somewhere.tld/或http://www.somewhere.tld/的某个子目录中。 但在重写规则中使用相对path不起作用。 所以我必须写下其中的一个: /html.php (When web is located in root directory of the web) /foo/bar/html.php (When web is located in foo/bar sub directory) 或者我可以设置一个RewriteBase,但我根本不想configuration这个path。 我希望apache自动做正确的事情,所以我可以复制到一些目录的网页,它只是工作,而不告诉重写规则的网站位于。我怎样才能做到这一点?
我正在尝试configuration一个需要在根目录中进行密码保护的apache虚拟主机。 所以我创build了一个.htpasswd文件(使用sha密码)并configuration了.htaccess文件。 不pipe我做什么,在网页上我得到一个错误500(内部服务器错误),并在error.log我看到这个: /var/www/ninja/www/.htaccess: deny not allowed here 或者如果我从.htaccess中排除否定: AuthUserFile not allowed here .htpasswd和.htaccess文件对于apache都是可读的,并被设置为www-data用户和组。 我也尝试将这些规则添加到虚拟主机configuration文件,但是这也没有办法。 你能帮我吗? 谢谢! configuration文件apache: <VirtualHost *:80> ServerAdmin webmaster@localhost ServerName ninja DocumentRoot /var/www/ninja/www ServerAlias ninja <Directory /var/www/ninja/www/> Options Indexes FollowSymLinks MultiViews AllowOverride FileInfo Indexes 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 […]
我正在尝试创build一个“example.com”域来为我的原始域提供静态内容。 加载内容时,如何使“example.com”域名无cookie? 我在想,这应该使用htaccess文件,但不太确定,在线信息很难遵循。 我还想在静态域上启用gzip来减less静态内容的下载大小。 我将如何设置? 我想在我的Apache服务器上设置这个来加载图像。 任何具体的想法或指示,将不胜感激! 谢谢帕维尔
我试图找出答案的几个类似的问题,但到目前为止,我一直没有成功。 请告诉我如何总是将httpredirect到https(并且在进程中从主机名中删除www 。 另外还有一个方面,在主要的Apache conf而不是.htaccess这样做会很好,但是我想这不适用于大多数人。 .htaccess使用SSL / HTTPS将wwwredirect到非www 将子域名请求redirect到子目录+ https(使用.htaccess) htaccess的非www的redirecthttp和https 更新: 我已经将这个片段添加到了VirtualHost部分: RewriteCond %{HTTP_HOST} ^www\.(.*) RewriteRule ^.*$ https://%1/$1 [R=301,L] …但是,当我访问http://www.domain (它应该redirect到https://domain ) 更新2: 它没有效果,因为我没有使用RewriteEngine on – 所以它现在的作品: RewriteEngine on RewriteCond %{HTTP_HOST} ^www\.(.*) RewriteRule ^.*$ https://%1/$1 [R=301,L]
我有一个社交网站,我想从网站上禁止用户。 我已经将他的IP地址添加到.htacess文件的禁止列表中, .htacess其禁用到了php级别,但是他不断使用不同的IP地址。 如何永久禁止用户,无论他多么努力地尝试重新进入网站?
我最近更新了我的.htaccess文件来隐藏URL的.php扩展名 。 它工作的很好,当我试图达到domain.com/index ,它显示的PHP文件。 当我键入domain.com/index.php时,它会将我redirect到domain.com/index url并显示.php文件。 我想将所有其他扩展名redirect到没有扩展名的url,出于安全原因显示.php文件。 我的问题是,我不能configuration我的.htaccess来redirect像.html .asp这样的众所周知的扩展。 aspx.shtml等转换为非扩展名的url,并获取显示为内容的.php文件。 我的.htaccess文件如下所示: <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / # php extension to no extension url RewriteCond %{THE_REQUEST} ^[AZ]+\s.+\.php\sHTTP/.+ RewriteRule ^(.+)\.php $1 [R=301,L] # no extension to the .php file RewriteCond %{REQUEST_FILENAME}.php -f RewriteCond %{REQUEST_URI} !/$ RewriteRule (.*) $1\.php [L] # this is for the index RewriteRule […]
我已经在apacheconfiguration中使用这样的代码来保护密码的位置 <Location ~ "/admin.*"> AuthType Basic AuthName "Protected Area" AuthUserFile /home/user/public_html/.htpasswd Require valid-user </Location> 有没有办法使用htaccess文件做同样的事情? 我想要保护的位置在文件系统上并不存在,这是由mod_rewrite提供的可用位置
我在我的apache访问日志中发现了这个 access.log:555.555.555.555 – – [05/May/2011:12:12:21 -0400] "GET /somedir/ HTTP/1.1" 403 291 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:5.0) Gecko/20100101 Firefox/5.0" access.log:555.555.555.555 – – [05/May/2011:12:12:29 -0400] "GET /somedir/ HTTP/1.1" 200 7629 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:5.0) Gecko/20100101 Firefox/5.0" 所以/ somedir /具有.htaccess文件,看起来像 Order Deny,Allow Deny from all Allow from 333.333.333.333 Allow from 444.444.444.444 htaccess在时间范围内没有被修改(12:12:21和12:12:29之间的8秒) 任何想法如何这可能击中403禁止,然后8秒后200 OK; 我感到困惑
我注意到谷歌网站pipe理员工具有关gzip版本的网站地图的错误。 原来, sitemap.xml.gz文件被压缩了两次:一次创build(应该是),另一次被提供服务。 .htaccess文件有这个规则 AddOutputFilterByType DEFLATE application/xml 我认为这不匹配一个gzipped的XML文件,但显然这是作为解决这个问题。 我究竟做错了什么?
我开发了一个应用程序,它使用了一个jQuery插件,它反过来使用多余的cookie数据。 问题是每15-20个请求之后,我通过浏览器显示这个错误信息。 您的浏览器发送了此服务器无法理解的请求。 请求标头字段的大小超过服务器限制。 挖了四周后我才知道,默认情况下apache的cookie长度默认值大约是8190 bytes 。 并增加limit.i需要改变/添加下面的行到configuration指令。 LimitRequestFieldSize 16380 我试图在.htaccess添加上面的代码,并重新启动了Apache服务器,但它没有工作。 我很困惑在哪里放置这条线。 是在httpd.conf文件中,或者有无论如何,我可以增加使用.htaccess文件的限制。 如果有人能把我指向正确的方向,我将不胜感激。 顺便说一句,我在OSX 10.7.4使用MAMP。