Назад | Перейти на главную страницу

Изменить URL с помощью htaccess

Все URL на моем сайте имеют URL:

www.domain.com/name+name+name+name

Как изменить все URL на:

www.domain.com/name-name-name-name

мой htaccess выглядит так:

<FilesMatch "\.(htaccess|tpl)$">
Order Allow,Deny
Deny from all
</FilesMatch>

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.* /index.php [L]
Options -Indexes

Если вы хотите перенаправить все старые URL-адреса, содержащие + (плюс) к новым URL-адресам, которые содержат - (дефис) вместо (т. е. заменить + с участием -), вы можете сделать что-то вроде следующего в .htaccess перед вашими существующими директивами mod_rewrite:

# Replace all "+" with "-" with repeating "internal rewrite" and set env var "REPLACED"
RewriteRule (.*)\+(.*) $1-$2 [N,E=REPLACED:1]

# If env var "REPLACED" is set then issue final "external redirect" to the new URL
RewriteCond %{ENV:REPLACED} .
RewriteRule (.+) /$1 [R,L]

Уточнение ... это не совсем "изменение URL с помощью .htaccess". Приведенное выше предполагает, что URL-адрес уже был" изменен в вашем приложении "(чтобы использовать дефисы вместо плюсов), а указанное выше перенаправление предназначено для использования SEO, где старый URL-адрес (содержащий плюсы) был проиндексирован, связан с ним и добавлен в закладки.