Articles of .htaccess

内部服务器500错误

大家好我已经在我的.htaccess文件中创build了以下脚本 Options +FollowSymlinks RewriteEngine on RewriteCond %{HTTP_HOST} domain.eu RewriteCond %{REQUEST_URI} !^domain RewriteRule ^(.*)$ domain/$1 [L] 这个脚本应该将domain.euredirect到域文件夹。 但是,当我上传这个脚本我得到内部服务器500错误。 任何想法出了什么问题? 谢谢

使用.htaccess来保护文件的直接访问

我们需要防止直接访问我们网站上的文件,只需在浏览器中inputurl即可。 我通过使用htaccess文件得到了这个工作,并且在IE和Safari中也没问题,但由于某些原因,Firefox不能合作。 我认为这与Firefox报告引用者的方式有关。 这是我在.htaccess文件中的代码。 RewriteEngine On RewriteBase / RewriteCond %{HTTP_REFERER} !^http://(my\.)?bigtimbermedia\.com/.*$ [NC] RewriteRule \.(swf|gif|png|jpg|doc|xls|pdf|html|htm|xlsx|docx)$ http://my.bigtimbermedia.com/ [R,L] 如果你想看到这个例子,请先尝试访问这个… http://my.bigtimbermedia.com/books/bpGreyWolvesflip/index.html 它在所有浏览器中正确地阻止它。 现在,如果你去这个URL并点击链接,它可以在IE和Safari中使用,但Firefox扼stream器似乎是在循环中。 任何想法,我可以得到这个工作在Firefox? 谢谢!

只允许使用.htaccess索引访问

我有这个在我的.htaccess文件,在网站的根: Options -Indexes <directory ../.*> Deny from all </directory> <Files .htaccess> order allow,deny deny from all </Files> <Files index.php> Order allow,deny allow from all </Files> 我试图实现的是阻止文件夹和文件访问不被称为index.php,不pipe哪个目录被访问。 我有文件夹部分工作完美,拒绝从所有规则工作以及 – 但我试图允许访问index.php失败。

从子文件夹主主域

我有一个问题,使一个子目录充当我的主域的public_html,并得到一个与该域子目录一起工作的解决scheme。 我的托pipe允许我托pipe多个网站,这一切都很好。 我在我的〜/ public_html /目录下build立了一个名为/ domains /的子文件夹,在这里我为每个单独的网站创build一个文件夹。 例如 的public_html 域 websiteone websitetwo websitethree … 这使我的网站不错,整齐。 唯一的问题是让我的“主要领域”适合这个系统。 这似乎是我的主要领域,与我的帐户(或Apache,或某事)有某种联系,所以我不能更改此域的“文档根目录”。 我可以为cPanel中添加的任何其他域(“Addon Domains”)定义文档根目录没有问题。 但主要的领域是不同的。 我被告知编辑.htaccess文件,将主域redirect到一个子目录。 这似乎工作很好,我的网站正常工作在家里/索引页面。 我遇到的问题是,如果我试图浏览我的主站点的图像文件夹(例如),像这样: www.yourmaindomain.com/images/ 那么它似乎忽略redirect,并显示在URL中的整个服务器目录,如下所示: www.yourmaindomain.com/domains/yourmaindomain/images/ 它实际上仍然显示正确的“索引/图像”页面,并显示我的所有图像的列表。 这里是我使用的.htaccess文件的一个例子: RewriteEngine on RewriteCond %{HTTP_HOST} ^(www.)?yourmaindomain.com$ RewriteCond %{REQUEST_URI} !^/domains/yourmaindomain/ RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ /domains/yourmaindomain/$1 RewriteCond %{HTTP_HOST} ^(www.)?yourmaindomain.com$ RewriteRule ^(/)?$ domains/yourmaindomain/index.html [L] 这个htaccess文件看起来是否正确? 我只需要这样做,所以我的主域的行为就像一个插件域,它的子目录坚持redirect规则。

用Apache密码保护目录:“无法检查用户。 检查你的authn提供者!“

我正在尝试密码保护与Apache的Web目录。 我有这样的网站设置: D:/ webapp/ lib/ .htpasswd document_root/ admin/ index.php .htaccess .htaccess有: AuthName "Authorization Required" AuthType Basic AuthUserFile D:\webapp\lib\.htpasswd require valid-user 而且.htpasswd有: user:passworddigest 当我尝试在浏览器中访问localhost/index.php ,出现500错误。 Apache的错误日志有这样的: ["date"] [crit] [client "ip"] configuration error: couldn't check user. Check your authn provider!: /admin/ 我GOOGLE了,但我无法弄清楚这个错误在我的服务器上下文意味着什么。 任何人都知道这是怎么回事 此外,它会解决我的问题,如果有人有一个简单的方法使用Apache的身份validation在Windows服务器上的Web目录。

mod_rewrite!-f和!-d被忽略.php扩展名

我在Apache 2服务器上有一个.htaccess文件: <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ – [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> 这些规则可以按照预期的方式处理任何请求,将不存在的文件或目录交给index.php程序进行处理。 如果请求的文件存在,例如服务器上的任何.txt或.js文件,规则也会绕过redirect。 但是任何以.php结尾的文件都不能正确处理。 文件存在,但是!-f和!-d规则被忽略。 只需将扩展名更改为.phpt并请求相同的文件(将“t”添加到最后)即可显示文件内容。 任何线索为什么只有.php文件会跳过!-f和!-d规则?

使用HTTP_IF_MODIFIED_SINCE进行图像caching

我发现添加 RewriteRule .* – [E=HTTP_IF_MODIFIED_SINCE:%{HTTP:If-Modified-Since}] RewriteRule .* – [E=HTTP_IF_NONE_MATCH:%{HTTP:If-None-Match}] 到我的htaccess文件的底部(下面所有重写)解决了我的问题(HTTP_IF_MODIFIED_SINCE没有被设置)cachingdynamic生成的图像。 辉煌。 虽然这实际上是做什么,为什么需要? 是否有必要我在每个.htaccess这个,或者我可以更改apache服务器configuration,所以我不必将此添加到每个网站项目?

将nginx转换为Apache重写

我试图从nginx上的现有网站设置CodeIgniter。 我的本地机器是Apache,这是nginx上的redirectscheme。 我怎么写使用RewriteRules ? if ($host ~* ^www\.(.*)) { set $host_without_www $1; rewrite ^(.*)$ http://$host_without_www$1 permanent; } if ($request_uri ~* ^(/welcome(/index)?|/index(.php)?)/?$){ rewrite ^(.*)$ / permanent; } if ($request_uri ~* index/?$){ rewrite ^/(.*)/index/?$ /$1 permanent; } if (!-d $request_filename){ rewrite ^/(.+)/$ /$1 permanent; } if ($request_uri ~* ^/system){ rewrite ^/(.*)$ /index.php?/$1 last; break; } if (!-e […]

我的部分url被剥离了

我发现,我们的networking服务器上的网站之一是有部分url被剥夺。 具体而言,当用户点击链接以幻灯片的forms显示图像时,该页面的URL有?show=slide append。 只是这个部分就是被剥离的东西。 除了这个问题,该网站正常工作。 此外,该网站曾经正常工作,我真的不知道在什么时候打破了,因为我很less访问它,唯一出现在我的更改日志是更新WordPress及其插件。 我已经证实,这不是由.htaccess文件中的任何内容造成的,因为我在开发服务器上安装了一个完全相同的站点副本,并按照预期运行。 我也已经将Apache虚拟主机configuration复制到了testing服务器上。 现场和开发服务器之间唯一的显着区别是前者是Ce​​ntos 5.5,另一个是Debian 6.0。 我被卡住的想法。 如果它不是Apache虚拟主机configuration或.htaccess文件,我还能在哪里查找可能导致此问题的原因? 更新 虽然对于一个纯粹的人来说,确实出现了URL的一部分被吃掉了,原来是mod重写和301redirect。 这是一个误导性的症状。 有问题的网站运行WordPress的插件数量。 主代码的固定链接重写和其中一个插件的固定链接重写不相互影响,并且不能很好地一起玩。 一堆卸载和重新安装,连同永久固定链接一起,终于得到了一切正常工作。 实际上,显然正在消失的那部分URL是错误的,导致网站上的一个破坏的function。

通过.htaccessredirect到shebang的path?

我有一小部分代码可以将从我自己的域访问的页面redirect到他们的哈希地址,如下所示: example.com/stationary.html => example.com/#/stationary 这是代码: <IfModule mod_rewrite.c> # Redirect requests to ajax pages the their hashes RewriteCond $1 !=index [NC] RewriteCond %{HTTP_REFERER} !^$ RewriteCond %{HTTP_REFERER} !^https?://(www\.)?example\.com/ [NC] RewriteRule ^([a-zA-Z0-9\-_]+)\.html?$ /#$1 [NE,R] </IfModule> 这将工作很好,现在我想知道我可以得到它redirect页面 example.com/stationary => example.com/#!/stationary 黑客上面的代码没有工作。 任何帮助,将不胜感激! 谢谢!