Articles of .htaccess

Htaccess的正则expression式奇怪的工作

我正在努力写入.htacess文件,将抓住urls像: http://www.site.com/pageone.html http://www.site.com/pagetwo.html 并将它们redirect到index.php,这样就可以将“ pageone ”和“ pagetwo ”作为GET参数。 以下是我的答案: 选项+ FollowSymlinks AuthUserFile / dev / null AuthGroupFile / dev / null RewriteEngine On RewriteOptionsinheritance RewriteRule ^((?:。[^ /])+)。html $ index.php?page = $ 1 [L] AddHandler php5脚本.php 这个正则expression式的问题是它捕获了一些页面,同时在其他页面上显示404错误。 而我不明白这个行为。 例如 http://www.site.com/draw.html 工作正常。 我在脚本中获取'draw'作为GET参数。 但 http://www.site.com/draws.html redirect到404页面 任何人都可以解释我的htacess有什么问题吗? ps – 我在典型的MAMPconfiguration下在本地的Apache服务器上看到这个。

.htaccess文件不能在网站上自动生成文件

我试图用我的.htaccess文件debugging一个问题。 我有一个目录是/wp-content/plugins/lot-wp-app/content ,其中包含一个.htaccess,如下所示: Options +FollowSymLinks RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ ../generate.php?file=$1 [L,QSA] 我不知道为什么它停止工作,可能是因为它是无效的。 generate.php位于/wp-content/plugins/lot-wp-app/generate.php 这个想法是,一个Android应用程序会请求/wp-content/plugins/lot-wp-app/content/posts-etc.json ,并减less服务器的负载,它会加载该文件,如果它存在。 不过,我们删除caching时,一个新的职位,使它是新鲜的(但它是按需生成的,所以你可以浏览我们的历史很好) 任何帮助,将不胜感激 :)

如何使用mod_rewrite重写两个子文件夹的规则

我需要做这样的事情: ########## SITE 1 RewriteEngine on RewriteBase /mysite1 RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php?url=$1 [L,QSA] ########## SITE 2 RewriteEngine on RewriteBase /mySecondSite RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php?url=$1 [L,QSA] 问题是我只能使用一个.htaccess文件,因为我在Windows 2003 Server上使用Helicon ISAPI_Rewrite 3 。 有没有一种方法来结合两个.htaccess文件中的一个,使他们正常工作? 我已经试过这只是为了testing如果mysite将工作没有RewriteBase ,但似乎不工作: RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^mysite1/(.*)$ index.php?url=$1 […]

Apache .htaccess重写不起作用

大家一直把我的头撞在这个墙上,看了很多文章。 我的任务 我试图重写一个wordpress网站的3个部分的HTTPS,如果他们通过HTTP访问: /cart/ /my-account/ /checkout/ 以及这些重写的worpress已经添加了一个重写删除index.php的URL。 index.php重写是唯一的工作。 我的configuration 这里是我的.htaccess <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / #BEGIN MyRewrite RewriteCond %{HTTPS} !on RewriteCond %{REQUEST_URI} (checkout|cart|my-account) RewriteRule ^(.*)$ https://%{SERVER_NAME}%{REQUEST_URI} [R=302,L] #END MyRewrite # BEGIN WordPress RewriteRule ^index\.php$ – [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] # END WordPress </IfModule> 问题 似乎我确实被redirect到https,但然后循环,从不显示。 一些curltesting 在下面你可以看到我的访问http版本/购物车被正确地告知,这已经转移到https […]

在站点根目录下使用.htpasswd .htaccess导致redirect循环

我想临时密码保护一个网站。 我在站点根目录中有一个.htaccess文件,其中包含: AuthType Basic AuthName "Example Site Name" AuthUserFile /home/my_username/.htpasswd Require valid-user 当我访问example.com时 ,会抛出一个login窗口,但是当我进行身份validation时,我得到一个310错误: 此网页有redirect循环 http://example.com/上的网页导致了太多的redirect。 清除本网站的Cookie或允许第三方Cookie可能会解决此问题。 如果没有,这可能是一个服务器configuration问题,而不是您的计算机的问题。 错误310(net :: ERR_TOO_MANY_REDIRECTS):有太多的redirect。 现在,每次击中example.com都会给我这个错误,而不要求我进行身份validation。 为什么发生这种情况?

另一个端口上的SSL

我们有一个web服务器,可以处理SSL请求,但在端口445而不是443.所以https://domain.com不起作用,但https://domain.com:445做。 我怎样才能使用.htaccess发出redirect到端口445,而不发出301 ? 我尝试使用%{HTTPS} on但没有奏效。 我不想将HTTPredirect到HTTPS。 只需https://domain.com到https://domain.com:445不需要301

Lighttpd:htaccess保护不起作用

我试图从我的网站上设置一个文件的htaccess保护。 我已经将以下代码粘贴到05-auth.conf中 $HTTP["url"] =~ "^/www/hosts/domain" { auth.backend = "htpasswd" auth.backend.htpasswd.userfile = "/etc/lighttpd/htpasswd" auth.require = ( "/file.php" => ( "method" => "basic", "realm" => "Please enter your Password.", "require" => "valid-user" ), ) } ..和lighttpd重新启动后,我看不到任何login窗口。 这个configuration有什么问题?

.htacess IP允许和拒绝不起作用

我有我的.htacess文件中的这个设置: Order Allow,Deny Deny from all Allow from localhost Allow from 86.101.198.88 (我的ip) ErrorDocument 404 /block/?code=404 ErrorDocument 403 /block/?code=403 但由于某种原因,我没有权限访问本地主机和使用我的IP。 我只是不断redirect到ErrorDocument错误403.我错过了什么?

全球黑名单IP

我知道阻止attacking IPs常用方法很less(例如deny in htaccess )。 除此之外,我们可以得到一个巨大的IP列表来阻止混杂网站,如: http://www.okean.com/antispam/cnkr_htaccess.txt http://www.stopforumspam.com 但是,对于每个项目来说,通过htaccess等来阻止所有这些已知的“不好的”IP,看起来效率很低。 。 所以我想知道: A)如果有任何Global authority应该从互联网上为整个互联网monitor and block这些IP, B)如果项目(网站)可能有任何simple+fast+autoUpdate "list"方法(比如在AdBlockPlus中使用的方法),它们将简单地加载IP来阻塞每天并阻止它们(同时在服务器中保持低成本延迟)。

我如何使用htaccessreplaceURL中的撇号?

我有一个search框的网站。 search字词作为$ _GET的一部分传递给search页面(我使用的是PHP,但我认为这与我遇到的问题无关),所以我的最终url就像www.example.com/ search.php中?search关键词=史密斯。 但是,我发现如果在search词中包含撇号(例如www.example.com/search.php?searchterm=o'hagen),服务器将返回406错误。 我以为我可能能够在htaccess文件中捕捉到它,并重写它可用的东西,但我迄今还没有能够。 到目前为止我已经尝试了这些: RewriteRule ^([^/]*)'([^/]*)$ $1\'$2 [N,E=redirect:1] 和 RewriteRule ^([^/]*)'([^/]*)$ $1%27$2 [N,E=redirect:1] 这些对我都没有好处。 任何人都可以build议我可以使用呢? 编辑:目前我已经去改变searchforms到POST和在代码中处理这个,但我仍然好奇,我怎样才能让Apache接受GET查询string中的search字词。