Все 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-адрес (содержащий плюсы) был проиндексирован, связан с ним и добавлен в закладки.