的.htaccess REQUEST_URI不能很好的工作

问题描述:

我试试这个规则的.htaccess REQUEST_URI不能很好的工作

RewriteCond %{REQUEST_URI} !^/dr/he 
RewriteCond %{HTTP_HOST} temp.il.gl 
RewriteRule ^(.*)$ http://m.il.gl/$1 [R=301,L] 

但是当我尝试也temp.il.gl/dr/he/也http://temp.il.gl/dr/

他们俩去m.il. gl 我在.htaccess测试人员和这项工作上尝试了它,但是当插入到我的.htaccess中时,这是行不通的。 谢谢。

编辑: 我有这样的线路也:

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_URI} !=/favicon.ico 
RewriteRule^index.php [L] 

编辑: 我加上一条:

RewriteCond %{REQUEST_URI} !^/(.*)index.php 

前:

RewriteRule ^(.*)$ http://m.il.gl/$1 [R=301,L] 

现在就是工作。 谢谢你 号Yoni

+0

虚拟主机中是否有重写规则? – 2013-05-07 05:32:56

+0

我不知道?我如何检查它。 – yonilobo 2013-05-07 05:58:40

+0

你有权访问httpd.conf吗? – 2013-05-07 05:59:18

这条规则说,如果请求的路径不/dr/he

RewriteCond %{REQUEST_URI} !^/dr/he 

启动和主机回答请求temp.il.gl

RewriteCond %{HTTP_HOST} temp.il.gl 

重定向所有流量m.il.gl永久。

RewriteRule ^(.*)$ http://m.il.gl/$1 [R=301,L] 
  1. 如果不打算,或者这是不是您遇到检查/dr/he目录中还包含一个重定向文件的行为。
  2. 检查虚拟主机以查看是否存在可能存在冲突的mod_rewrite声明。
  3. 也许在执行转移的.htaccess中有另一行?
  4. 如果他们都在同一台服务器上,也许这是配置服务器的DNS问题。 (如果服务器被配置为回答这两个问题)。
  5. 浏览器通常会缓存301重定向,因此如果您在一个点意外重定向了所有流量,则可能需要刷新浏览器缓存以使其停止重定向“/ dr /他“文件夹。
+0

3.是的,你是对的。 这是行: RewriteRule^index.php [L] RewriteCond%{REQUEST_FILENAME}!-f RewriteCond%{REQUEST_FILENAME}!-d RewriteCond%{REQUEST_URI}!=/favicon.ico – yonilobo 2013-05-07 06:14:56

+0

是的,你说得对。这是行:!!! >的RewriteCond%{REQUEST_FILENAME} -f >的RewriteCond%{REQUEST_FILENAME} -D- >的RewriteCond%{REQUEST_URI} =/favicon.ico的 >重写规则^的index.php [L] – yonilobo 2013-05-07 06:21:47

+0

所以该规则说任何不是真正的文件,而不是一个真正的目录,并不是favicon.ico被重定向回index.php。所以如果你的文件夹不包含index.php。一旦有事去index.php然后它符合您的其他规则,并被重定向到其他网站。 – 2013-05-07 06:23:31