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