Вот мой .htaccess:
... rewriterule file%20name.htm http://mysite.com/new_name.htm#anchor [r=301,nc,ne] ...
Он не перенаправлен, и я считаю, что это потому, что он не нацелен на файл с% 20 в имени.Что касается флагов, я использовал ne, чтобы не переписывать часть #anchor перенаправления.
Кроме того, флаг "nu" ломает мой файл, и я получаю внутреннюю ошибку server 500.вы.
Когда вызывается mod_rewrite, путь уже был декодирован как часть обработки запросов Apache.Итак, если вы хотите проверить пробел, вы можете сделать это буквально:
mod_rewrite
RewriteRule file\ name\.html http://example.com/new_name.htm#anchor [R=301,NC,NE,L]
Флаг NU не существует , поэтому вы получаете внутренний серверошибка при попытке использовать его.
NU
Не самый лучший ответ, и его можно использовать только в определенных случаях, но я изменил
file%20name.htm
до
file.*
, поэтому оно будет соответствовать любому имени файла, начинающемуся с «file», независимо от пробелов и специальных символов.