我在 Debian etch 上运行 apache2,有多个虚拟主机。
我想重定向,以便http://git.example.com
转到http://git.example.com/git/
应该很简单,但谷歌并没有完全削减它。我已经尝试了重定向和重写的东西,但它们似乎并没有做我想做的......
我只想将我的根重定向到另一个 url,但要维护它们所属的所有 /sub/directories(并重定向)
例子:
mysite.com/1 重定向到某个地方 mysite.com/admin 打开一个页面
我希望 mysite.com/ 重定向到 mysecondsite.com 并且仅使用 htaccess 进行 301 重定向
我正在加载带有 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”指令?
有很多关于如何编写 Nginx 重写规则来模仿 Apache 的 .htaccess 文件的教程,但我不能自信地说我知道这个所谓的 Nginx 配置文件的名称或位置实际上是什么。我特别在寻找允许您编写服务器路径和 PHP 指令的 Nginx 配置文件。我使用 Ubuntu 12 linux 和 Codeigniter 作为我的 PHP 框架。
以下是我目前所知道的:
/etc/nginx/nginx.conf
尽管它的名字很吸引人,但它显然不是服务器指令的地方。/etc/nginx/sites-available/default
似乎是我需要的(我能够生成特定于我的应用程序的 php 错误),但我无法使 Codeigniter 特定的路径路由正确。首先,这是每个人所说的“配置”文件/.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 文件中使用 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> 指令的例子,或者一些关于为什么它对我不起作用的指导吗?
谢谢!
如何通过 .htaccess 启用 Gzip 或 Deflate 压缩,现在哪个最好?需要的代码示例。
这已上传到我的 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) 我有一个网站,它为 PHP 请求发送“缓存控制”和“pragma”HTTP 标头。
我没有在代码中这样做,所以我假设它是某种 Apache 配置,正如这个问题所建议的那样(对于这个问题的上下文,你真的不需要去那里)
我的 .htaccess 文件中没有任何内容,所以它必须在 Apache 的配置中,但我无法访问它,这是一个共享主机,我只能通过 FTP 访问我的网站目录。
有什么方法可以将指令添加到我的.htaccess 文件中,以删除全局配置添加的标头,或者以其他方式覆盖该指令,以便它们不会首先添加?
非常感谢
丹尼尔
我们为 htaccess 编写了很多代码,但是除了刷新页面之外,最好的调试方法是什么?
有什么方法可以将它写到文件中吗?还是有一些回声/打印功能?
我怎么知道我的 1 美元 2 美元 3 美元是多少?
.htaccess ×10
apache-2.2 ×9
http-headers ×2
redirect ×2
codeigniter ×1
gzip ×1
mod-deflate ×1
mod-rewrite ×1
nginx ×1
php ×1
remove ×1
security ×1
virtualhost ×1
xampp ×1