Articles of .htaccess

尾随斜杠.htaccess规则导致使用完整的内部位置

这是一个相当简单的问题,已经在networking上解决,但我找不到解决我的问题。 我试图用这个.htaccess文件强制在我的网站上的url的尾部斜线: # Don't allow directory indexing Options -Indexes -Multiviews # Turn on the URL rewrite engine RewriteEngine On # Add trailing slashes RewriteCond %{REQUEST_FILENAME} -d RewriteRule ^(.+[^/])$ $1/ [R] # send the request to [first pseudo-directory].php?p=[all the rest] # not a known file or directory RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d #exclude URIs with […]

.htaccess mod_rewrite在IE中不能解释友好的URL(适用于FF,Chrome,Safari)

我在我的网页上使用mod_rewrite来允许正确处理友好的URL。 它在FF,Chrome和Safari中完美的工作,但在IE浏览器友好的url不断给我一个404错误(它不处理重写正确,所以它显示为404)。 有没有人有这方面的经验? 如果是的话,它是如何解决? 注意:我已经清除了caching,Cookie和会话,并重新启动了浏览器。 我使用IE 9,但也尝试过IE7和8,使用开发工具,没有运气在任何IE模式。 另外需要注意的是,IE可以重写一些页面,但是对于其他页面则不起作用。 例 用户访问: www.mysite.com/products/99-shoes.html 服务器将解释并从这里提供页面: www.mysite.com/product.php?id_product=99 以下是我在.htaccess中使用的指令types的示例: <IfModule mod_rewrite.c> # URL rewriting module activation RewriteEngine on RewriteRule ^products/([0-9]+)-[a-zA-Z0-9-]*.html /product.php?id_product=$1 [QSA,L] </IfModule> # Catch 404 errors ErrorDocument 404 /404.php 更新:额外信息 按照要求,我在下面提供了我的RewriteLog。 第一个是从我访问Chrome页面(正常工作)。 第二个是我在IE中访问页面时输出的内容。 我试图加载的页面是: http://localhost/products-fb/10-loop.html 。 我已经删除了一些重复的字符和时间戳,以坚持StackOverflow的30K字符限制。 如果您认为我可能删除了重要的内容,请告诉我,我可以上传.txt文件进行查看。 Chrome日志输出 (2) init rewrite engine with requested uri /products-fb/10-loop.html (1) pass […]

WordPress多站点.htaccess不能使用IP地址和代字号url

我必须将WordPress多站点从一台服务器移到另一台服务器。 我复制了所有的文件和数据库,现在我想通过浏览一些已安装的博客来testing它。 不幸的是我无法访问它们,因为我的.htaccess中的URL重写规则将我redirect到根URL。 例如,说WP多站点的主机名为example.com,安装博客的URL之一是example.com/installedblog/。 在新服务器上,我还没有设置DNS,但是我只能使用IP地址和用户名访问我的站点,如下所示:127.0.0.1/~username/。 这个URL可以工作,但是如果尝试127.0.0.1/~username/installedblog/或者127.0.0.1/~username/wp-admin,我会被redirect到Apache 404页面。 我的.htaccess是默认的Wordpress MU,它可以在DNS设置的服务器上运行: RewriteEngine On RewriteBase / RewriteRule ^index\.php$ – [L] # uploaded files RewriteRule ^([_0-9a-zA-Z-]+/)?files/(.+) wp-includes/ms-files.php?file=$2 [L] # add a trailing slash to /wp-admin RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L] RewriteCond %{REQUEST_FILENAME} -f [OR] RewriteCond %{REQUEST_FILENAME} -d RewriteRule ^ – [L] RewriteRule ^([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) $2 [L] RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\.php)$ $2 [L] RewriteRule […]

为什么这个模式在匹配preg_match时不符合RewriteCond中的QUERY_STRING?

这是我的.htaccess文件。 RewriteEngine on RewriteCond %{QUERY_STRING} ^(run=[a-z0-9A-z]{13})$ RewriteRule %{QUERY_STRING} \? [L] 我所做的就是为所有QUERY_STRING重写QUERY_STRING ,类似于run=4f13665700694 ,什么也不做。 URL示例: http://thinkingmonkey.me/runs/?run=4f13665700694 : http://thinkingmonkey.me/runs/?run=4f13665700694 。 所以,RewriteCond应该匹配。 但是,上述不起作用。 但是,模式似乎是正确的。 因为, preg_match和RewriteRule使用PCRE – Perl Compatible Regular Expressions 。 我尝试使用preg_match 。 $subject = "run=4f13665700694"; $pattern = "/^(run=[a-z0-9A-z]{13})$/"; echo preg_match($pattern, $subject); 除了上面的例子,还会输出: 1 即成功匹配。 我不懂为什么。 我在这里错过了什么?

.htaccess不工作,但启用

我有一个不工作的.htaccess文件。 我知道这是行不通的,因为我写了随机的东西,我没有得到一个500错误。 即使我写适当的代码,它不起作用。 我已经validation,在我的根目录,并具有适当的文件名。 这里是http.conf中的“tag”目录: <Directory /> Options FollowSymLinks AllowOverride All Order deny,allow Deny from all </Directory> 我用<?php phpinfo(); ?> 并validationmod_rewrite已启用,但仍然没有运气。

如何从一个端口redirect到另一个?

我有一个域,我在不同的端口上运行两个不同的Web应用程序。 一个Java web应用程序的例子:8888 / foo 例如一个PHP网站:8080 / bar 要求是,如果用户试图访问例如:8888或example:8080的根,那么用户应该被redirect到例如:8888 / foo。 我怎样才能达到这个要求?

不能得到RewriteCond规则工作在mod_rewrite

我有以下path: http://www.domain.com/cgi-bin/hsrun.exe/Distributed/Postphil/postphil.htx;start=DetectLanguage?Language=LANG_Icelandic 如果path包含文件夹/ p​​ostphil我想redirect到一个新的域 但是我还没有能够使RewriteCond规则起作用 RewriteCond %{REQUEST_URI} ^postphil+ [NC] RewriteRule ^(.*)$ https://www.newdomain.com/ [R=301,L] 我一直在使用rewrite-rule-tester的在线testing人员来尝试找出有效的东西,但没有运气。 任何想法如何写RewriteCond条件?

将urlredirect到新的主机

我有以下url显示一个正常的静态网站: www.example.com 。 这个网站在亚马逊热。 我想让所有以www.example.com/redirect开头的urlredirect到我拥有的另一个主机帐户。 请注意,我也希望主机在上述域(即,这不是重新指向另一个url)。 如果这个账户位于1.23.345.678 。 为了做到这一点,我需要在.htaccess文件中改变什么?

将… /?token = xx-xxx转换成… / xx-xxx

我有一个移除index.php(codeigniter)的htaccess文件。 我有一个问题与贝宝,导致返回的url是使用查询string,这是在codeigniter麻烦。 这是我的htaccess文件: RewriteEngine on RewriteBase / # Hide the application and system directories by redirecting the request to index.php RewriteRule ^(application|system|\.svn) index.php/$1 [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php/$1 [QSA,L] 我想重写下面的例子url-s: http://…/site/bookingconfirmed/?token=EC-56G61173NH540131H 至 http://…/site/bookingconfirmed/EC-56G61173NH540131H 和 http://…/site/bookingdeclined/?token=EC-56G61173NH540131H 至 http//…/site/bookingdeclined/EC-56G61173NH540131H 任何好的想法如何做到这一点?

如何在Apache下允许FTP使用htaccess时阻止HTTP?

我可以很容易地阻止使用.htaccess文件“拒绝所有”的请求到一个目录。 不过,我允许通过客户端和浏览器允许FTP访问。 有没有一种方法可以限制拒绝HTTP请求只?