URL переписать, чтобы добавить каталог в начале URL-адреса

На моем веб-сайте все изображения / таблицы стилей находятся в каталоге / CMS / …. Недавно наш веб-сайт перешел на новый сервер на временном URL-адресе, где они ссылались как на / newdirectory / CMS / …

Как мы можем добавить / newdirectory / ко всем / CMS / вызовам?

Solutions Collecting From Web of "URL переписать, чтобы добавить каталог в начале URL-адреса"

Внутри файла .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 и т. Д., И все входящие ссылки будут поддерживаться.