Questions tagged «.htaccess»

目录级配置文件主要在Apache Web服务器上找到

1
所有选项都必须以+或-开头,否则任何选项都不能[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,以使其成为服务器故障的主题。 5年前关闭。 我在.htaccess文件中有这行 Options +SymLinksIfOwnerMatch ExecCGI Includes IncludesNOEXEC SymLinksIfOwnerMatch ExecCGI Includes IncludesNOEXEC SymLinksIfOwnerMatch ExecCGI Includes IncludesNOEXEC SymLinksIfOwnerMatch ExecCGI Includes IncludesNOEXEC SymLinksIfOwnerMatch ExecCGI Includes IncludesNOEXEC SymLinksIfOwnerMatch ExecCGI Includes IncludesNOEXEC SymLinksIfOwnerMatch ExecCGI Includes IncludesNOEXEC SymLinksIfOwnerMatch Indexes -Indexes 我收到以下错误: Either all Options must start with + or -, or no Option …

2
在SSL终止负载平衡器之后的EC2实例上进行SSL重定向
我正在尝试将所有URL重定向到Web应用程序中的https。 我在弹性负载平衡器后面有一个ec2实例。SSL在负载均衡器上终止。 任何重定向尝试最终都会给我熟悉的“此页面正在以一种永远无法完成的方式进行请求”。 负载平衡器将443和80转发到实例上的端口80。 这就是我的.htaccess文件中的内容。 RewriteCond %{X-FORWARDED-PROTO} !=on RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] 有谁知道如何做到这一点?谢谢,

5
如何解决.htaccess文件中的“此处未允许ExpiresActive”错误消息?
我正在尝试将Expires标头添加到我正在工作的网站的HTTP响应中。我控制Apache 1.3服务器的唯一方法是编辑.htaccess文件。我尝试添加如下代码来启用Expires标头: <IfModule mod_expires.c> ExpiresActive on ExpiresDefault "access plus 1 hour" </IfModule> 但是,这会导致内部服务器错误,并在日志中显示以下错误消息: ExpiresActive在这里不允许 由于未启用mod_headers,因此我可能无法使用其他缓存控制方法。我仍然可以通过.htaccess文件中的某些命令使用mod_expires启用Expires标头吗? 更新 我记得在某个地方读到,httpd.conf中的Override设置可能与此有关。有什么方法可以验证这确实是问题所在吗?如果是,是否有一些解决方法可以控制我的网站的缓存标题?

4
为什么.htaccess重定向在http中起作用但在https中不起作用?
我有一个简单的.htaccess文件,该文件在该网站的http版本上很好用,但是在访问https时却无法使用。为什么? RewriteEngine on #This is so if the file exists then use the file RewriteCond %{REQUEST_FILENAME} -f RewriteRule ^ %{REQUEST_FILENAME} [L] #These conditions check if a file or folder exists just for reference #RewriteCond %{REQUEST_FILENAME} !-f #RewriteCond %{REQUEST_FILENAME} !-d #if someone adds ".php" to the slug get rid of it …

2
在.htaccess文件中分行
我在.htaccess文件中设置了Content-Security-Policy标头,并且它已经成长为一个非常长的单行,这很麻烦管理。有什么方法可以将这一行分解为更易于管理的子字符串? 作为一个简单的例子,说我正在设置标题 Header set Content-Security-Policy "deafult-src http://domainA.com; script-src http://domainB.com" 我可以(没有明显的中断问题)通过类似以下方式完成我的特定情况 Header append Content-Security-Policy "default-src http://domainA.com;" Header append Content-Security-Policy "script-src http://domainB.com" 但这会在字符串中插入逗号,因此我仍然很好奇是否可以在不添加其他字符的情况下普遍使用更好的答案。 理想的情况是,如果有一些串联字符可以用来将字符串分成较小的部分,例如 Header set Content-Security-Policy "default-src http://domainA.com;" \" script-src http://domainB.com" 要么 Header set Content-Security-Policy "default-src http://domainA.com;"^ " script-src http://domainB.com" 要么 Header set Content-Security-Policy "default-src http://domainA.com;" +" script-src http://domainB.com" 或者,如果我可以设置某种变量并仅转储其内容以执行类似的操作 a="default-src …

3
服务器错误前如何从HTTPS重定向到HTTP?
我曾经使用SSL证书运营网站,但已停止使用SSL证书。问题在于该网站的大多数外部链接都使用https://前缀。 我尝试在.htaccess文件中使用https://重定向到http://: RewriteEngine On RewriteCond %{HTTPS} on RewriteRule ^(.*)$ http://%{HTTP_HOST}%{REQUEST_URI} 但是,正如在其他地方所指出的那样,服务器似乎在激活重定向之前试图检索证书。因此,在完成重定向之前会显示一个错误。该错误是警告证书已过期,或者是如果我删除证书签名请求,则错误是SSL收到的记录超过最大允许长度的错误。 有什么方法可以允许传入链接正确重定向?

2
允许在.htaccess中使用php_value和php_flag
我正在将Apache Web服务器与PHP5作为模块一起运行(注意:作为Apache模块,而不是CGI!)。 在我的某些.htaccess文件(gallery3软件随附的一个文件,http: //gallery.menalto.com/ )中,有php_value和php_flag语句。 当尝试访问该文件夹中的文件时,它们会导致500服务器错误。因此,我编辑了apache2.conf并添加了以下几行: <Directory /my/gallery/folder> AllowOverride All </Directory> 我做错了吗?我允许重写,我将PHP作为Apache模块运行。为什么总是将error.log告诉我php_value not allowed here?


1
HSTS和双重重定向
我在共享托管LAMP环境中管理一个小网站:这基本上意味着我唯一可以编辑的就是htaccess文件。 我想添加HSTS支持(确实做到了),但是,当我在此处测试我的网站的HSTS预加载资格时,出现以下错误: 错误:HTTP首先重定向到www http://example(HTTP)应该立即重定向到https://example(HTTPS),然后再添加www子域。现在,第一个重定向是到https://www.example.。需要额外的重定向,以确保任何支持HSTS的浏览器都将记录顶级域的HSTS条目,而不仅仅是子域。 因此,我想应该以这种方式重定向用户: http://example (这是用户在浏览器的地址栏中输入的内容) https://example (我们将他重定向到网站的HTTPS版本) https://www.example (我们再次将他重定向到子域www) 我当前的重定向是通过以下方式完成的: RewriteCond %{SERVER_PORT} 80 RewriteRule ^(.*)$ https://www.example.com/$1 [R,L] 我尝试通过以下方式在最后一行之前添加重定向: RewriteRule ^(.*)$ https://example.com/$1 [R,L] 但我从浏览器中收到“页面无法正确重定向”错误。 那么,将用户从网站的http版本重定向到https并最终通过www重定向到https的正确方法是什么?并且:有任何风险吗?

1
增加Apache中LimitRequestFieldSize的值
我已经开发了一个使用jQuery插件的应用程序,而该插件又使用了过多的cookie数据。问题是,每15-20个请求后,浏览器就会向我显示此错误消息: 您的浏览器发送了该服务器无法理解的请求。请求标头字段的大小超过服务器限制。 深入研究后,我知道默认情况下apache具有cookie长度的默认值;周围的某个地方8190 bytes。要增加限制,我需要将以下指令更改/添加到我的配置中。 LimitRequestFieldSize 16380 我尝试在中添加上述代码.htaccess,然后也重新启动了apache服务器,但是它没有用。 我对放置这条线的位置感到困惑;在httpd.conf文件中吗?还是有什么办法可以使用.htaccess文件增加限制?如果有人能指出我正确的方向,我将不胜感激。 和顺便说一句,我在OSX 10.7.4上使用MAMP。

3
如何通过htaccess屏蔽我的Wordpress安装?
(我知道不建议您通过晦涩难懂的方式进行安全保护)。 我试图掩盖我正在使用Wordpress的事实。这篇文章很有帮助,但仅涉及内容(分类)。我对发生以下情况感兴趣: 用户尝试wp*通过其浏览器访问任何带有子字符串的URL 。 结果:重定向到404页面。 博客用户/管理员知道要登录,他们应该转到http://example.com/blogin/。 结果: apache将它们重定向到http://example.com/wp-admin/。 如果用户尝试直接wp-admin从其浏览器访问,他们将被发送到#1。 结果:重定向到404页面。 到目前为止我所做的事情 我注意到对于WordPress的默认安装,我可以访问wp*WP安装的(相对)根目录中的任何文件。特别wp-settings.php是有问题的,因为它提供了有关我的设置的信息。如果用户访问它,它将发出一些PHP错误并显示目录结构的一部分。我编辑了php.ini文件以将其display_errors关闭。现在访问http://example.com/wp-settngs.php将弹出一个空白页。 这本身并不理想,因为它表明wp-settings.php存在。实际上,可以访问所有不同的wp*文件(结果不同)。然后,将以下内容放入htaccess文件: RewriteEngine On RewriteBase / RewriteCond %{PATH_INFO} wp* [NC] RewriteRule .* - [F] 这很棒!任何带有的内容wp*都路由到我的自定义404页面。但是现在我无法访问我的管理页面。 我试图将此行插入以上代码:中RewriteRule ^blogin wp-admin [NC,R,L]。原本应该是正确的,RewriteBase但这没有用。 我试图做一个: <Directory /home/example/wp*> Order Allow, Deny Allow from example.com Deny from all </Directory> 希望我站点中的引荐来源网址(通过重写规则)能够访问wp-admin,但不能访问外部访问者。这也不起作用。apache抱怨您不能从htaccess使用此指令。 我已经阅读了Apache文档;从理论上我理解这些概念,但是我需要一些实际帮助。 编辑:我正在寻找使用.htaccess而不是httpd.conf的解决方案,因为我的特定设置使使用httpd.conf不一致。

11
.htaccess无法正确重定向到www前缀的页面
我正在尝试不使用www重定向网址。到www.version(从example.com到www.example.com)。我用平常的 RewriteCond %{HTTP_HOST} ^example\.com [nc] RewriteRule (.*) http://www.example.com/$1 [R=301,L] 这适用于我所有其他项目。但是,在此特定站点上,它以重定向循环结尾。这是一个很奇怪的部分:我试图卷曲非www版本,以查看它使用了什么标题 curl --get http://example.com --dump-header domain.header > domain.html。头文件如下所示: HTTP/1.1 301 Moved Permanently Date: Mon, 06 Jun 2011 14:45:16 GMT Server: Apache/2.2.16 (Debian) Location: http://example.com/ Vary: Accept-Encoding Content-Length: 310 Content-Type: text/html; charset=iso-8859-1 但是,生成的HTML文件是这样的: <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> <html><head> <title>301 Moved …

3
限制上传文件的大小,如果超过限制,将用户重定向到错误页面
是否可以将用户重定向到文件file too big页面 POST请求大小超过指定限制时? 我知道max-request-size选项,但是它只提供不能重载的静态页面。 我正在考虑创建一个重写规则 来自请求正文的内容大小作为输入,并重定向到错误页面 更新 现在我们使用nginx作为前端。有什么新建议吗?

4
htaccess中按什么顺序放置规则有关系吗?
我希望这是一个简单的“是”或“否”答案(请指定原因) Q1:规则以什么顺序放在htaccess中有关系吗? 由于它们是完全分开的项目:例如 问题2:如果可以,我是否申请了正确的订单? 为了加速htacces引擎而不用不必要的规则使其过载? 问题3:关于在此处禁用/添加内容的任何提示都欢迎+1! # DirectoryIndex index.php /index.php AddDefaultCharset UTF-8 RewriteEngine on # Options All # Options +FollowSymLinks # Options +FollowSymLinks -Indexes -ExecCGI # RewriteBase / ##################################################### <IfModule mod_headers.c> ExpiresActive On ExpiresDefault M172800 Header unset ETag FileETag None Header unset Pragma ##### STATIC FILES <FilesMatch "\\.(ico|jpg|png|gif|svg|swf|css|js|fon|ttf|eot|xml|pdf|flv)$"> ExpiresDefault M1209600 …

1
为什么我的RewriteLog不起作用?
我有一个.htaccess,它看起来像这样: RewriteEngine on RewriteLog "/Applications/MAMP/logs/rewrite_engine_log" RewriteCond %{REQUEST_URI} !/(index.php|css|images|js)/.*$ RewriteRule (.*) /mysite/index.php/$1 当我添加该RewriteLog指令时,出现内部服务器错误。 在Apache日志文件中,我得到以下信息: /Applications/MAMP/htdocs/mysite/.htaccess: RewriteLog not allowed here 我没有手动创建该rewrite_engine_log文件,但是该路径/ Applications / MAMP / logs /在我的Mac上存在。接下来我可以尝试什么来获取RewriteEngine日志文件?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.