Articles of .htaccess

.htaccess文件中的mod_rewrite为未知path的第一部分

我想写一个重写规则来改变pathslu to查询参数。 这是一个Web服务,只应该重写这个规则,如果主机启动API。 有两个slu that,我试图捕捉和重写。 第一个是可选的,是一个版本(即v1.2),第二个是服务域(即客户,交易等)。 http://api.domain.com/v2.5/customers应该重写为?version = 2.5&domain = customers 我也想支持一个默认版本 http://api.domain.com/customers应该重写为?version =&domain = customers 这是我的.htaccess文件的样子: RewriteEngine On RewriteBase / RewriteCond %{HTTP_HOST} ^api\..* RewriteRule ^v([\d\.]*)?\/?([^\/]*)$ ?version=$1&domain=$2 上面的第一个例子工作正常,但我不能得到默认的版本path工作。 我尝试了很多不同的东西。 我认为以^。* v开头会有所帮助,但是没有。 当你不知道起始字符时,谁知道如何使它匹配?

通用重写规则的版本控制的CSS / JS文件?

有没有通用的规则来重写版本? /css/main.123456.css重写为/css/main.css /css/styles.123456.css重写为/css/styles.css /js/application.123456.js重写为/js/application.js 我应该如何修改我的.htaccess文件来为css / js文件添加通用版本? # BEGIN WordPress <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ – [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> # END WordPress

htaccess和Dropbox

我正在寻找一些帮助将Dropbox登陆页面集成到我当前的htaccess。 我发现这个伟大的脚本(不支持我的主机,因为在Apache中使用mod_proxy [P]) http://leebyron.com/how/2010/03/09/dropbox-custom-domain/ 这是我想要的2个着陆页: box.leebyron.com(Dropbox的公用文件夹根页面redirect到index.php – 不是404)box.leebyron.com/wrong-url.zip(错误的urlredirect到index.php – 不是404) 我的问题:如何将着陆页添加到以下.htaccess文件中: # Check to see if mod_rewrite is installed / avaliable <IfModule mod_rewrite.c> RewriteEngine on # Check to see if file or directory exists RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d # Rewrite to Dropbox URL. Make sure you change the data after "/u/" (9502594) to […]

htaccess从WordPress页面redirect到一个PHP页面

我最近不得不改变一个网站上的URL(在Apache上的PHP)。 旧的url是: http://content.mywebsite.org.uk/hidden/discounts/ : http://content.mywebsite.org.uk/hidden/discounts/ 当用户访问上述链接。 新的URL是: http://www.mywebsite.org.uk/charity_benefits.php : http://www.mywebsite.org.uk/charity_benefits.php 我尝试了以下(和其他一些)的变体,但它只是不为我工作。 RewriteCond %{REQUEST_URI} ^/hidden/discounts/$ [NC] RewriteRule ^/hidden/discounts/$ /charity_benefits.php [R=302,L,NC] 我需要redirect到www mywebsite.org.uk。 (注意www !它的重要!)。 所以基本上,从旧页面到新页面的简单redirect。 (位于同一服务器上的不同子域(OLD: content. ,NEW: www. ))。

htaccess重写规则以匹配dynamic参数

我的基地url是这样的。 http://localhost/test/s/beer-drinks 而根据用户的input,可以是这样的。 http://localhost/test/s/beer-New-York-drinks_alcoholic-No_rating-2-3_price-1-3_page-2 它所说的“啤酒”的部分可以是用户input的实际searchstring的任何string。 “New-York”的部分可以是任何城市,用户可以select设置或不设置。 用户还可以select是否设置以下值。 酒精可以具有“否”或“是”的值可以是从1到5的值,并且多个值由 – 价格分隔可以是从1到5的值并且多个值由 – 页分隔是指示分页的偏移量 我想直接上面的url,并能够传递实际searchstring(“啤酒”)的值,忽略匹配的城市,并通过酒精,评级,价格和页面的价值,如果设置。 我在我的htaccess上有这样的东西 RewriteRule ^search$ s/ [R=301,L] RewriteRule ^search/$ s/ [R=301,L] RewriteRule ^s/(.*)-drinks_alcoholic-(.*)_rating-(.*)_price-(.*)_page-(.*) search/q_$1/alcoholic_$2/rating_$3/price_$4/page_$5/ . . . RewriteRule ^s/(.*)-drinks_page-(.*) search/q_$1/page_$2/ RewriteRule ^s/(.*)-drinks search/q_$1/ 我很难匹配城市部分,而不会打破比赛的顺序($ 1,$ 2等)。 我发现这篇文章解释了正则expression式中的条件,但是如果页面被设置,我似乎可以得到它的工作。

尝试访问php5.3网站时没有日志信息的Apache Error 500

我有下一个问题。 我必须做一些rewriteUrl工作的网站…呃,其实,我不得不修改已经工作的urlRewriting 。 保持谨慎,我保存了整个源代码的副本,甚至.htaccess文件,以防万一… 那么,我介绍一些小的改变.htaccess(我改变了一行),似乎不工作。 显示一个空白页面…我撤消这些更改…我仍然得到相同的空白页面。 使用保存的版本replace.htaccess文件也不起作用。 我既不能访问phpMyAdmin …得到一个错误500.但没有错误显示在error.log或acces.log。 我已经修改了index.php文件,并在实际显示的文件的开始处添加了一个echo“echo”行…因此,在执行include / require操作时出错。 <?php echo "echo"; require_once('./conf/conf.main.php'); include_once(INC_PATH.'inc.common.php'); require_once 'jtpl_standalone_prepend.php'; require_once(CLASS_PATH.'class.distri.php'); require_once(CLASS_PATH.'class.news.php'); require_once(CLASS_PATH.'class.xmltoarray.php'); require_once(CLASS_PATH.'class.grossistes.php'); echo "echo"; 第二个“回声”没有显示。 我正在与: PHP:5.3.3 Apache:2.2.16 MySQL:5.1 这很奇怪,因为我有和以前一样的.htaccess,…任何想法? 提前致谢

为什么禁止使用mod_rewrite的目录中的所有php文件拒绝访问目录列表?

服务器:Apache 2.2.17 我有下一个.htaccess文件: <IfModule mod_rewrite.c> RewriteEngine On RewriteRule !^includes/ – [S=1] RewriteRule ^includes/[^/]+\.php$ – [F,L] RewriteRule ^index\.php$ – [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> 正如你所看到的,我禁止用户访问“includes”目录中的所有php文件。 除了php文件,我还有另一个目录和一个图像里面的“包括”,但我没有索引文件。 那么为什么禁止所有的PHP文件这种方式拒绝访问目录列表? PHP文件被禁止,我可以访问图像,并进入“包括”内的其他目录。 但“包含”目录中的文件列表被拒绝。 为什么?

将域名链接到子目录,而不在地址中显示子目录名称

我有一个域名, blogdomain.com ,我使用这个.htaccess文件链接到otherdomain.com/blog : RewriteEngine On RewriteCond %{HTTP_HOST} ^(www.)?blogdomain.com$ RewriteRule ^(/)?$ blog [L] 现在当我去blogdomain.com ,我被redirect到blogdomain.com/blog 。 是否可以编写.htaccess规则,以便我可以避免在新地址中出现子目录名称?

在共享的apache上保护php

我将在服务器上安装apache + php,其中两个用户A和B将部署他们的网站。 为了安全起见,我试图实现用户空间的隔离:那就是站点A的脚本不应该能够读取站点B中的文件。 为了达到这个目的,我安装了suphp。 用户A的网站文件由A:A拥有,Perm = 700,B的用户由B:B拥有,Perm = 700。 Suphp工作得很好,但是apache抱怨读取.htaccess的权限。 我怎样才能让apache读取A和B的每个目录中的.htaccess,同时保持站点A和站点B之间的隔离? 我玩所有权(组= www数据)和权限(750),但我发现没有办法保持隔离授予。 任何想法? 也许通过以root身份运行apache,但在这种情况下是否有任何缺点?

在rewriterule中使用unicode

我在RewriteRule使用了包含utf8字符的.htaccess文件中的以下语句。 .htaccess文件以utf8编码保存在记事本中。 网站的所有页面都保存在utf8中,所有的字符集都是utf8。 <IfModule mod_rewrite.c> RewriteEngine On RewriteBase /new/ RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^هاستینگ/هاست-لینوکس-عادی/$ /linux-regular.php [L] </IfModule> 但是,当我浏览到URL هاستینگ/هاست-لینوکس-عادی/只是我得到未find错误。