2013-05-07 84 views
0

我試試這個規則的.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

回答

5

這條規則說,如果請求的路徑不/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

相關問題