Я бы хотел заменить любое пространство в моих URL-адресами
Это мой полный файл htaccess:
Options -MultiViews RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME}\.php -f RewriteRule ^(.*)$ $1.php RewriteRule ^archive/([^/]+)$ news?title=$1
Проблема в том, что мой заголовок часто содержит пробелы, поэтому он возвращает этот URL:
example.com/archive/this%20is%20a%20test
Url, который я хотел бы создать: example.com/archive/this-is-a-test
Я прочитал, что я мог бы включить «\», чтобы удалить любые пробелы, но мои попытки не сработали …
Связанный с этим вопрос: как я могу ссылаться на этот новый URL-адрес с другой веб-страницы? Я не могу использовать следующую причину php, которая просто вернет url с символами «% 20»:
<a class="readmore" href="/archive/<?php echo $row['title'];?>
поместите это в свой файл htaccess
RewriteEngine On
RewriteRule ^(.*/|)[\s+]+(.+)$ $1$2 [L]
RewriteRule ^(.+?)[\s+]+(/.*|)$ $1$2 [L]
RewriteRule ^([^\s+]*)(?:\s|+)+(.*)$ $1-$2 [L,R]