我必须重写一个子目录才能进入主域。 例如,我有www.mysite.com,我想将www.mysite.com/newersite重写为www.mysite.com 这是我在我的htaccess文件中使用的: RewriteCond %{HTTP_HOST} ^mysite\.com$ [OR] RewriteCond %{HTTP_HOST} ^www\.mysite\.com$ RewriteCond %{REQUEST_URI} !^/newsitecontainer/newsite/ RewriteRule (.*) /newsitecontainer/newsite/$1 这个重写代码工作正常,但有两个我关心的问题: 1)在我的newsitecontainer有两个依赖的文件夹为新的网站正常工作,“newsite”目录和“数据”目录。 数据目录需要位于“newsite”文件夹之外(以root身份)。 目前(现场网站)是www.mysite.com。 我想重写这两个子目录,以当前的域名www.mysite.com(除了“数据”目录,只需要在“newsite”目录中调用正确的位置) 。 这是我目前的目录结构简单的图表: http://i56.tinypic.com/s5y1ja.png 我想我想要“newsite”url等于目前的域名(www.mysite.com),“newsite url”= www.mysite.com。 我想把“data”目录改写成显示为“newsite”目录,但仍然在根目录(newsitecontainer)中。 我刚刚熟悉这个htaccess的东西,所以这可能听起来很混乱。 我知道我是… 2)第二个问题是一旦“newsite”和“data”目录被成功地重写,我想重写“newsite”子目录的内容页面,直接显示它们是新重写的一部分目前的域名(www.mysite.com)。 我想这样做,因为我使用(Elgg)和url的平台有很多插件可以是真正漫长和丑陋的(不帮助search引擎优化的目的)。 因此,例如(成功改写问题#1后),我想重写这样的:“www.mysite.com/modfolder/submodfolder/visible-page/”这个“www.mysite.com/visible-page/ “这将重写对mod目录的任何引用,它是子目录(和实际页面),以显示一个干净的URL作为当前域和mods目录的实际可见页面。 我知道这是所有的时间,可能很容易做,但给我的情况我不知道如何正确地重写上述目录。 我真的很感谢在这方面的帮助。 这是我唯一要做的事情来向我的客户展示这件事。 当然,我可以给他写url,以查看网站,但这一切都是关于演示文稿,我需要完成这个,使其完全生活,并开始推广网站。 所以请帮助。 感谢提前一百万!
为了方便地允许或不允许使用dynamicIP地址,您可以将其添加为.htaccess文件中的主机名。 正如我已阅读: .htaccess允许从主机名? 它会对连接的IP地址进行反向查询,看看响应是否与允许的名称匹配。 (实际上,Apache实际上是在进行双向查找,首先进行反向查找,然后对结果进行正向查找。) 这就是我们目前在.htaccess中没有使用dynamic-ip主机名的原因:这个“听起来”很重:每个请求都有2个额外的查找。 这真的是相当沉重 ,并会相当繁忙的服务器,而不是寻找更less的负载摆脱这个:)? (例如:这个“负载”与其他的比较起来如何?如果一个请求的价格高出1000倍,那么查找起来可能是微不足道的,otoh,这可能就是最终的结果:)) 还有其他解决scheme吗? 我可以编写一个脚本来查看主机名,并将其放入.htaccess文件中,但这有点像黑客。
我想设置使用Apache的多个redirect,但完全难住,如何做到这一点? 我有一个nodejs实例,它提供了我的主页上运行我的服务器上端口4000.它可以从服务器访问本地主机:4000(端口4000不对外部访问)。 我有一个WordPress的实例的博客。 该博客驻留在mysite.com/blog 所以。 我希望mysite.com/blog/xxxxx的所有请求都被redirect到wordpress实例,并将所有其他请求(例如mysite.com/xxxx/yyyy)redirect到我的节点实例http:// localhost:4000 / XXXXX / YYYY 我的configuration文件看起来像这样 9 <VirtualHost *:80> 10 11 # Admin email, Server Name (domain name) and any aliases 12 ServerAdmin xxxxx 13 ServerName xxxxx 14 ServerAlias xxxxx 15 16 17 # Index file and Document Root (where the public files are located) 18 DirectoryIndex index.html index.php […]
我的网站使用mod_rewrite来查找网站中的大部分url。 例如。 domain.com/contact.htm domain.com/product/details.htm 我有domain.com/contact.htm工作了很长时间,很简单,但不幸的是,我不能为我的生活让子文件夹重写工作,以便我可以去domain.com/product1/about.htm没有它带我直接到404页面。 这里是我的.htaccess的摘录。 RewriteRule ^product1/([^/]+).htm$ /product1/index.php?p=$1 [L] #Even hardcoded isn't working… RewriteRule ^([^/]+)/([^/]+)/([^/]+).htm$ /$1/$2/index.php?p=$3 [L] RewriteRule ^([^/]+)/([^/]+).htm$ /$1/index.php?p=$2 [L] RewriteRule ^([^/]+).htm$ /index.php?p=$1 [L] 这些规则在http://martinmelin.se/rewrite-rule-tester/上正常工作,但在实践中似乎从未奏效。 我想在这方面得到一些帮助。 编辑:仅供参考,这是位于domain.com的根www文件夹中的单个.htaccess文件。 谢谢。
我按照我的Drupal 6.22网站(93-94行)根目录下的.htaccess文件的注释中的说明操作。 此configuration不起作用。 任何想法,我可能会出错? # # Apache/PHP/Drupal settings: # # Protect files and directories from prying eyes. <FilesMatch "\.(engine|inc|info|install|make|module|profile|test|po|sh|.*sql|theme|tpl(\.php)?|xtmpl|svn-base)$|^(code-style\.pl|Entries.*|Repository|Root|Tag|Template|all-wcprops|entries|format)$"> Order allow,deny </FilesMatch> # Don't show directory listings for URLs which map to a directory. Options -Indexes # Follow symbolic links in this directory. Options +FollowSymLinks # Make Drupal handle any 404 errors. ErrorDocument 404 /index.php […]
我想在Apache服务器上使用.htaccess来只将调用redirect到文件系统中不是文件或文件夹的服务器。 例如,如果服务器收到以下请求: http://www.domain.tld/page1.html 而page1.html不是服务器上的实际文件,它应该301redirect到: http://new.domain.tld/page1.html 否则,它不应该做任何事情。 这可能吗? 如果是这样,怎么样? 请尽可能提供一些示例代码。 我现在的代码是: RewriteEngine on RewriteCond %{HTTP_HOST} ^www\.domain\.tld [NC] Rewriterule ^(.*)$ http://subdomain.newdomain.tld/$1 [L,R=301] 虽然这样做的redirect,它不会忽略服务器上的实际文件和文件夹。
我面临的问题是如何防止从一个网站内部盗链。 我想要阻止www.website.com/user/xxx链接CSS,但允许www.website.com/user/aaa使用.htaccess使用CSS。 – 用户xxx和用户aaa使用www.mywebsite.com/css.css css文件,我只想让用户aaa能够使用它而不是用户xxx 到目前为止,我设法提出的一个.htaccess在www.mywebsite.com只允许用户aaa热链接的CSS。 RewriteCond %{HTTP_REFERER} !^$ RewriteCond %{HTTP_REFERER} !^http(s)?://(www.website.com/user/aaa) [NC] RewriteRule \.(css|jpg|jpeg|png|gif)$ http://website.com/donotsteal [NC,R] 当我把这个进入.htaccess它阻止www.website.com/user/xxx和www.website.com/user/aaa从盗链的CSS 我想要做的就是只允许这个网页www.website.com/user/aaa使用CSS并阻止任何其他的链接。
有没有一种方式与htaccess规则停止下载的特定 zip文件,除非它已经通过网站链接。 IE浏览器。 停止复制和粘贴链接或粘贴链接到地址栏或其他网站的人。
如果在文件系统中存在与冲浪者请求匹配的实际文件,我希望我的RewriteRule不生效。 所以如果有人去mysite.com/realfile.php?foo=bar,realfile.php是一个真正的文件,冲浪者得到服务realfile.php?foo =酒吧。 但是,如果有人去mysite.com/nonexistentfile.php和nonexistentfile.php不是一个真正的文件,那么RewriteRule应该解释并传递请求到process.php 我在.htaccess中有以下内容: RewriteEngine on RewriteRule (.*)\.php$ process.php?id=$1 [QSA] 如果文件系统中没有与冲浪者的请求匹配的真实文件,则这起作用。 如果冲浪者进入realfile.php?foo = bar …,那么他们就不能工作,在这种情况下,他们碰到了RewriteRule。 它确实工作,如果他们只是做realfile.php,但我希望查询string仍然传递到真实文件,如果存在。 我以为本地文件系统总是优先于RewriteRule?
我想立即停止bingbot 。 我想要在.htaccess中使用mod_rewrite来做到这一点。 我有这些规则… Options +FollowSymLinks RewriteEngine on RewriteCond %{HTTP_USER_AGENT} ^bingbot/.* [OR] RewriteCond %{HTTP_USER_AGENT} ^Bingbot/.* [OR] RewriteRule ^(.*)$ http://go.away/ [L] …但他们不工作。 我可以在我的日志中看到这种types的条目… msnbot-207-46-195-224.search.msn.com – – [11/Jul/2011:15:07:27 -0700] "GET /index.php?url_mainnav=13&url_subnav=131&url_expand=394,949,4631&url_startrow=110 HTTP/1.1" 403 502 "-" "Mozilla/5.0 (compatible; bingbot/2.0; +http://www.bing.com/bingbot.htm)" …我已经尝试HTTP_USER_AGENT的正则expression式的多种变化,但我不能我想要的响应,所以我认为我使用的规则的实际结构是不正确的。 任何人都可以指向正确的方向吗? 顺便说一下,我知道这样的事情在iptables等方面做得好得多,我也知道robots.txt。 这是共享主机,所以我没有控制iptables,我不想等待bingbot六个/八小时重新读取robots.txt。 那么事情正在向前发展。 考虑到这个问题,我把重写规则改为: Options +FollowSymLinks RewriteEngine on RewriteCond %{HTTP_USER_AGENT} ^bingbot/.* [OR,NC] RewriteCond %{HTTP_USER_AGENT} .*bingbot/.* [OR] […]