我目前有正确的PHP脚本,被调用像这样: www.example.com/user.php/paul www.example.com/tag.php/food 我很难让.htaccess重写正确。 我试图达到这个目的: www.example.com/user/paul www.example.com/tag/food 到目前为止,我可以把它redirect/用户到/user.php,但/ paul丢失; 打破我的脚本。 我现在的.htaccess看起来像这样: RewriteEngine On RewriteCond %{THE_REQUEST} ^GET\ /([^.\ ]+\.)+php(\?[^\ ]*)?\ HTTP RewriteRule ^(.+)\.php$ http://www.example.com/$1 [R=301,L] RewriteRule ^([^/]+/)*index/?$ http://www.example.com/$1 [R=301,L] RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)/$ http://www.example.com/$1 [R=301,L] RewriteCond $1 !^([^.]+\.)+([a-z0-9]+)$ [NC] RewriteCond %{REQUEST_FILENAME}.php -f RewriteRule ^(.*[^/])$ /$1.php [L] 请帮忙。 谢谢! 保罗
我必须重写一个子目录才能进入主域。 例如,我有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,以查看网站,但这一切都是关于演示文稿,我需要完成这个,使其完全生活,并开始推广网站。 所以请帮助。 感谢提前一百万!
我想设置使用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文件。 谢谢。
我怎样才能重写这个urlapi.domain.com/v1/json/account?id=123到api.domain.com?id=123&v=v1&f=json&t=account RewriteCond %{HTTP_HOST} ^(api)\.[^\.]+\.[^\.]+$ [NC] RewriteCond %{REQUEST_URI} ^/([^/]+)/([^/]+)/([^/]+)/?(\?%{QUERY_STRING})?$ [NC] RewriteRule ^(.*)$ /?%{QUERY_STRING}&v=%1&f=%2&t=%3 [L]
我想立即停止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] […]
我有http://example.com/intranet/ ,我不得不把它变成http://intranet.example.com不幸的是,一切都写入绝对path,所以它的像<a href="/intranet/timeclock">time clock</a> 所以你看到我的困境。 一切都想去/ intranet /时钟 我尝试了一些重写规则 RewriteRule ^/intranet / [R,L] RewriteRule ^/intranet/(*.) /$1 [R,L] 和别的。 没有运气。 我看了服务器故障的其他职位,并尝试了一些没有运气也。 安迪的build议?
我目前正在运行一个具有“多商店”function的网站,这基本上意味着单一网站处理多个域名。 在这种情况下,我有domain-a.com和domain-b.com都指向一个商店。 目前,他们在domain-a.com/blog有一个博客,可以从这两个站点访问。 最近,我们希望为每个域build立一个单独的博客,所以我们将博客从domain-a.com/blog移到blog.domain-a.com ,并在htaccess文件中设置301redirect来转发domain-a.com/blog到新的位置。 问题是,这也将domain-b.com/blog上的stream量redirect到blog.domain-a.com 。 只使用.htaccess,可以让domain-a.com/blogredirect到blog.domain-a.com和domain-b.com/blogredirect到一个完全不同的位置,比如说domain-b.com/newBlog ? 编辑:最后一段的末尾已被重写为清晰
我的服务器上有一个名为john的文件夹。 在这个文件夹里面是我正在处理的一个应用程序。 我有一个自签名证书安装。 如果我去https://mydomain.com/john/signin它的作品。 我有一个.htaccessredirect所有的请求,不是以john或者julian字开头到/ john : RewriteCond %{REQUEST_URI} !^/(john|julian).* RewriteRule ^(.*)$ john/$1 [L] 现在,如果我转到像http://mydomain.com/about这样的非SSL页面,则会加载页面http://mydomain.com/john/about (该URL未redirect)。 但是,如果我去https://mydomain.com/signin ssl页面,我得到一个“ 404找不到 ”的错误。 任何想法会造成这种情况?
可能重复: 一切你想知道Mod_Rewrite规则,但不敢问? 以下几行是什么意思? 对不起,我是一个正规expression的新学习者。 RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC] RewriteCond %1/%{REQUEST_FILENAME} -f RewriteCond %1/%{REQUEST_FILENAME} -d RewriteRule index.php?=%{REQUEST_FILENAME} [L] 在阅读了一些Apache重写文档之后,我现在已经有了一些基础知识,但是我还是不能很好地理解上面的一些部分。 %{HTTP_HOST}请求域 [NC] (不区分大小写) L (上一次停止处理规则) -f如果Something_to_test是一个文件 -d如果Something_to_test是一个目录 %{REQUEST_FILENAME}请求文件名 ( ^www\.(.*)$ )中的$是什么意思。 所有客户端请求的URL都是以www.开头的www. 。 我对吗? %1/%的含义是什么? RewriteRule index.php?=%{REQUEST_FILENAME} 如果三个RewriteCond都正确,它将执行RewriteRule线。 规则是什么意思?