2015-12-14 133 views
1

任何人都可以告訴我下面的代碼是幹什麼的?下面提到的代碼在.htaccess中做了什麼?

RewriteEngine On 
RewriteCond %{HTTP_HOST} ^example-old.com$ 
RewriteRule (.*) http://www.example-new.com/$1 [R=301,L] 

只有當某人鍵入完全example-old.com時,它才能工作嗎?使用文件夾的網址會發生什麼情況,如example-old.com/folder1和example-old.com/folder1/sub1/page1.php

我的客戶網站之一已成爲一場災難。以下是打開時.htaccess中的代碼和Google搜索中的頁面,它在每個顯示可怕頁面的URL末尾添加了一個額外的'/'。我無法揣摩出代碼中的錯誤是:

Options -Indexes 
RewriteEngine On 
RewriteCond %{HTTP_HOST} ^example-old.com$ 
RewriteRule (.*) http://www.example-new.com/$1 [R=301,L] 

RewriteCond %{HTTP_HOST} ^www.example-old.com$ 
RewriteRule (.*) http://www.example-new.com/$1 [R=301,L] 

RewriteCond %{HTTP_HOST} ^example-new.com$ 
RewriteRule (.*) http://www.example-new.com/$1 [R=301,L] 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule . index.php [L] 

# remove browser bugs 
BrowserMatch ^Mozilla/4 gzip-only-text/html 
BrowserMatch ^Mozilla/4\.0[678] no-gzip 
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html 
Header append Vary User-Agent 
RewriteCond %{HTTP_HOST} ^example-old\.com$ [OR] 
RewriteCond %{HTTP_HOST} ^www\.example-old\.com$ 
RewriteRule ^2015\/?(.*)$ "http\:\/\/www\.example-old\.com\/$1" [R=301,L] 

而不是打開一個頁面的網址: -

http://www.example-new.com/folder1/page1.php

它打開:

http://www.example-new.com/folder1/page1.php/

由於安全原因,我使用了example-old和example-new。請幫忙...!

回答

0
RewriteEngine On 
RewriteCond %{HTTP_HOST} ^example-old.com$ 
RewriteRule (.*) http://www.example-new.com/$1 [R=301,L] 

這會永久重定向example.com/foo/foobarexample-new.com/foo/foobar

RewriteCond %{HTTP_HOST} ^example-old.com$ 
RewriteRule (.*) http://www.example-new.com/$1 [R=301,L] 
在PHP方面

,你會用

if(host == "example.com" and Request_uri== "any request") 
{header('location : host/Request_uri',301) 
else 
{no redirection}