На моем веб-сайте все изображения / таблицы стилей находятся в каталоге / CMS / …. Недавно наш веб-сайт перешел на новый сервер на временном URL-адресе, где они ссылались как на / newdirectory / CMS / …
Как мы можем добавить / newdirectory / ко всем / CMS / вызовам?
Внутри файла .htaccess
RewriteEngine On RewriteCond %{REQUEST_URI} !^/newdirectory/CMS/ RewriteRule ^(.*)$ /newdirectory/CMS/$1
Это приведет к перезаписи, поэтому доступ к http://www.server.com/CMS/index.html будет фактически служить содержимому http://www.server.com/newdirectory/CMS/index.html
Примечание. Это решение предполагает, что CMS – единственное, что обслуживается для этого домена.
Если этот домен обслуживает больше, чем CMS (и нужно перенаправить только CMS), то может быть лучше:
RewriteEngine On RewriteCond %{REQUEST_URI} ^/CMS/ RewriteRule ^(.*)$ /newdirectory/$1
Для этого вам не нужен RewriteRule (или mod_rewrite). Вы можете использовать простой RedirectMatch:
RedirectMatch ^/CMS/(.*) http://tempserver.com/newdirectory/CMS/$1
Я бы предложил использовать mod_rewrite, который имеет большинство серверов apache / linux. Создайте файл с именем .htaccess в docroot вашего сайта с содержимым:
<IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^/CMS/(.*)$ /newdirectory/CMS/$1 [QSA] </IfModule>
Этот метод сделает его прозрачным для конечного пользователя и не повлияет на текущее значение pagerank, SEO и т. Д., И все входящие ссылки будут поддерживаться.