我有许多重定向工作,但有一个需要重定向并删除文件名。
redirect 301 /path/to/file/default.aspx http://www.domain.com/newpath/to/page/
当我实现这一点时,它会尝试重定向,但不会从 URL 中删除 default.aspx。
编辑
重写规则:
## 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>
答案1
匹配的 URL 路径之外的附加路径信息将附加到目标 URL。
因此您的Redirect
行附加了不需要的文件名。
尝试一下这个:
RewriteCond %{REQUEST_URI} ^/path/to/file/default.aspx$ 重写规则 .* http://www.domain.com/newpath/to/page/