标签: .htaccess

如何让Apache2重定向到子目录

我在 Debian etch 上运行 apache2,有多个虚拟主机。

我想重定向,以便http://git.example.com转到http://git.example.com/git/

应该很简单,但谷歌并没有完全削减它。我已经尝试了重定向和重写的东西,但它们似乎并没有做我想做的......

.htaccess redirect apache-2.2

73
推荐指数
1
解决办法
16万
查看次数

如何通过htaccess重定向root和只有root?

我只想将我的根重定向到另一个 url,但要维护它们所属的所有 /sub/directories(并重定向)

例子:

mysite.com/1 重定向到某个地方 mysite.com/admin 打开一个页面

我希望 mysite.com/ 重定向到 mysecondsite.com 并且仅使用 htaccess 进行 301 重定向

.htaccess redirect apache-2.2

56
推荐指数
3
解决办法
12万
查看次数

如何让 Apache2 解析(无错误).htaccess 中的 Header 指令?

我正在加载带有 500 内部服务器错误的页面,因为我相信 Apache 尚未配置为允许的指令。

我将 AllowOverride 设置为 all,以及一个 .htaccess 文件,包括:

<FilesMatch "\.(eot|ico|pdf|flv|jpg|jpeg|png|gif|svg|swf|ttf|woff)$">
Header set Cache-Control "max-age=31536000, public"
Header set Expires "Wed, 23 Apr 2014 17:00:01 UTC"
</FilesMatch>
Run Code Online (Sandbox Code Playgroud)

/var/log/apache2/error.log 有:

[Sat Jul 20 15:12:36 2013] [alert] [client 24.15.83.241] /home/jonathan/.htaccess: Invalid command 'Header', perhaps misspelled or defined by a module not included in the server configuration
Run Code Online (Sandbox Code Playgroud)

我需要指定什么才能让 Apache2 正确处理“Header”指令?

.htaccess http-headers apache-2.2

40
推荐指数
2
解决办法
5万
查看次数

Nginx 配置文件(相当于 htaccess)的名称和位置是什么?

有很多关于如何编写 Nginx 重写规则来模仿 Apache 的 .htaccess 文件的教程,但我不能自信地说我知道这个所谓的 Nginx 配置文件的名称或位置实际上是什么。我特别在寻找允许您编写服务器路径和 PHP 指令的 Nginx 配置文件。我使用 Ubuntu 12 linux 和 Codeigniter 作为我的 PHP 框架。

以下是我目前所知道的:

  1. 这个文件:/etc/nginx/nginx.conf尽管它的名字很吸引人,但它显然不是服务器指令的地方。
  2. 这个文件:/etc/nginx/sites-available/default似乎是我需要的(我能够生成特定于我的应用程序的 php 错误),但我无法使 Codeigniter 特定的路径路由正确。首先,这是每个人所说的“配置”文件/.htaccess 等价物吗?

php nginx .htaccess codeigniter apache-2.2

32
推荐指数
1
解决办法
9万
查看次数

即使 VirtualHost 具有“AllowOverride All”,也会忽略 .htaccess

我在 Fedora 13 上运行 LAMP 服务器,运行正常;但是,我只是在我当前站点的 docroot 文件夹中添加了一个“.htaccess”文件,该文件被完全忽略。

我已经尝试了六种不同的测试,包括这个:

RewriteEngine on
RewriteBase /

RewriteRule ^.*$ index.php
Run Code Online (Sandbox Code Playgroud)

但是图像和所有其他页面加载良好,不存在的文件仍然是 404。我也试过这个:

order deny,allow
deny from all
Run Code Online (Sandbox Code Playgroud)

但每个页面仍然加载得很好。.htaccess 文件再次被 100% 忽略。

我们将虚拟主机记录放在 /etc/httpd/conf.d/virtual.conf 中。它看起来像这样:

NameVirtualHost *

<VirtualHost *>
    ServerName              intranet
    DocumentRoot            /var/www/default
    <Directory "/var/www/default">
        Options FollowSymLinks
        AllowOverride All

        Order allow,deny
        Allow from all
    </Directory>
</VirtualHost>

<VirtualHost *>
    ServerName              ourwebsite.com
    DocumentRoot            /var/www/html/ourwebsite.com/docroot
    <Directory "/var/www/html/ourwebsite.com/docroot">
        Options FollowSymLinks
        AllowOverride All

        Order allow,deny
        Allow from all
    </Directory>
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

还有什么可能导致我们的服务器完全忽略.htaccess文件?

编辑:

我将 .htaccess 文件更改为上面的内容,以更好地证明我的更改被忽略了。请注意,我在生产服务器上尝试了完全相同的 .htaccess 文件,并且运行良好。

编辑2: …

.htaccess virtualhost apache-2.2

28
推荐指数
2
解决办法
9万
查看次数

我应该如何在 .htaccess 中使用 &lt;If&gt; 指令?

我正在尝试在我的 .htaccess 文件中使用 Apache 的 If 指令添加条件语句。

我已经参考了这个页面http://httpd.apache.org/docs/trunk/mod/core.html#if但它没有详细说明/给出很多例子。它给出的两个不完整的例子是:

<如果 %{REQUEST_METHOD} 在 GET,HEAD,OPTIONS> 

<If "$req{Host} = ''"> 

所以我尝试将其添加到我的 .htaccess 文件中:

<如果 %{SERVER_PORT} IN GET,HEAD,OPTIONS>
   #这里什么都没有
</如果>

但是当我尝试加载页面时,我不断收到错误 500。这是在我的本地安装上,以前运行良好(或者如果我删除了该代码)。我相信我已经AllowOverride All设置了全局,并且 If 指令的上下文应该让它出现在 .htaccess 中(“上下文:服务器配置,虚拟主机,目录,.htaccess”)。

有人能给我一些关于如何正确使用 <If> 指令的例子,或者一些关于为什么它对我不起作用的指导吗?

谢谢!

configuration .htaccess xampp apache-2.2

23
推荐指数
2
解决办法
6万
查看次数

如何通过 .htaccess 启用 Gzip 或 Deflate 压缩?

如何通过 .htaccess 启用 Gzip 或 Deflate 压缩,现在哪个最好?需要的代码示例。

.htaccess gzip mod-deflate apache-2.2

22
推荐指数
3
解决办法
6万
查看次数

可疑的 .htaccess 文件

这已上传到我的 FTP 文件夹之一。我不熟悉 Apache,但仍然很好奇 - 有人能告诉我这个文件试图提交什么类型的卑鄙行为吗?谢谢!

RewriteEngine On
RewriteCond %{HTTP_REFERER} .*google.*$ [NC,OR]
RewriteCond %{HTTP_REFERER} .*ask.*$ [NC,OR]
RewriteCond %{HTTP_REFERER} .*yahoo.*$ [NC,OR]
RewriteCond %{HTTP_REFERER} .*excite.*$ [NC,OR]
RewriteCond %{HTTP_REFERER} .*altavista.*$ [NC,OR]
RewriteCond %{HTTP_REFERER} .*msn.*$ [NC,OR]
RewriteCond %{HTTP_REFERER} .*netscape.*$ [NC,OR]
RewriteCond %{HTTP_REFERER} .*aol.*$ [NC,OR]
RewriteCond %{HTTP_REFERER} .*hotbot.*$ [NC,OR]
RewriteCond %{HTTP_REFERER} .*goto.*$ [NC,OR]
RewriteCond %{HTTP_REFERER} .*infoseek.*$ [NC,OR]
RewriteCond %{HTTP_REFERER} .*mamma.*$ [NC,OR]
RewriteCond %{HTTP_REFERER} .*alltheweb.*$ [NC,OR]
RewriteCond %{HTTP_REFERER} .*lycos.*$ [NC,OR]
RewriteCond %{HTTP_REFERER} .*search.*$ [NC,OR]
RewriteCond %{HTTP_REFERER} .*metacrawler.*$ [NC,OR]
RewriteCond %{HTTP_REFERER} .*yandex.*$ [NC,OR]
RewriteCond %{HTTP_REFERER} .*rambler.*$ [NC,OR] …
Run Code Online (Sandbox Code Playgroud)

security mod-rewrite .htaccess apache-2.2

20
推荐指数
2
解决办法
746
查看次数

如何在 Apache 中使用 .htaccess 删除 HTTP 标头?

我有一个网站,它为 PHP 请求发送“缓存控制”和“pragma”HTTP 标头。
我没有在代码中这样做,所以我假设它是某种 Apache 配置,正如这个问题所建议的那样(对于这个问题的上下文,你真的不需要去那里)

我的 .htaccess 文件中没有任何内容,所以它必须在 Apache 的配置中,但我无法访问它,这是一个共享主机,我只能通过 FTP 访问我的网站目录。

有什么方法可以将指令添加到我的.htaccess 文件中,以删除全局配置添加的标头,或者以其他方式覆盖该指令,以便它们不会首先添加?

非常感谢
丹尼尔

.htaccess remove http-headers apache-2.2

18
推荐指数
1
解决办法
3万
查看次数

如何从 .htaccess 中回显?

我们为 htaccess 编写了很多代码,但是除了刷新页面之外,最好的调试方法是什么?

有什么方法可以将它写到文件中吗?还是有一些回声/打印功能?

我怎么知道我的 1 美元 2 美元 3 美元是多少?

.htaccess

17
推荐指数
2
解决办法
3万
查看次数