Что делает приведенный ниже код в.htaccess?
Может ли кто-нибудь сказать мне, что делает код ниже?
RewriteEngine On
RewriteCond %{HTTP_HOST} ^example-old.com$
RewriteRule (.*) http://www.example-new.com/$1 [R=301,L]
Это работает, только если кто-то печатает именно example-old.com? Что будет с URL-адресами с папками, такими как 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]
Вместо того, чтобы открыть страницу с URL: -
http://www.example-new.com/folder1/page1.php
Это открывает:
http://www.example-new.com/folder1/page1.php/
Я использую пример старый и пример новый по соображениям безопасности. Пожалуйста помоги...!
1 ответ
RewriteEngine On
RewriteCond %{HTTP_HOST} ^example-old.com$
RewriteRule (.*) http://www.example-new.com/$1 [R=301,L]
Это постоянно перенаправляет example.com/foo/foobar в example-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}