У меня работает много перенаправлений, но у меня есть один, который нужно перенаправить и удалить имя файла.
redirect 301 /path/to/file/default.aspx http://www.domain.com/newpath/to/page/
Когда я реализую это, он пытается перенаправить, но не удаляет default.aspx из URL-адреса.
редактировать
Правила перезаписи:
## path relative to web root
RewriteBase /
## workaround for HTTP authorization
## in CGI environment
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
## always send 404 on missing files in these folders
RewriteCond %{REQUEST_URI} !^/(media|skin|js)/
## never rewrite for existing files, directories and links
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
## rewrite everything else to index.php
RewriteRule .* index.php [L]
РЕДАКТИРОВАТЬ 2
Единственные другие директивы будут в конфигурации vhost, и их там не много:
<VirtualHost 192.168.100.216:80>
ServerName web01.domain.com
ServerAlias www.domain.com
DocumentRoot /var/www/domain.com/htdocs
SetEnvIf X_FORWARDED_PROTO https HTTPS=on
RewriteEngine on
<Directory /var/www/domain.com>
AllowOverride All
</Directory>
</VirtualHost>
Документация для Redirect
Говорит, что
Дополнительная информация о пути помимо совпадающего URL-пути будет добавлена к целевому URL-адресу.
Так что ваши Redirect
строка добавляет ненужное имя файла.
Попробуйте вместо этого:
RewriteCond %{REQUEST_URI} ^/path/to/file/default.aspx$ RewriteRule .* http://www.domain.com/newpath/to/page/