0

我正在用我尝试实施几天的重写规则来拉扯头发,因为我已经完全重新完成了一个网站,现在必须将旧 URL 重定向到新 URL

(备注:在 Windows 2008R2 上运行 Apache)

旧链接始终是:
www.domain.com/files/

新链接是:domain.com/_fileuploads/

示例(旧)URL 将是 www.domain.com/files/Media/Statistics/Germany/services%202003-2012.pdf

我几乎尝试了一切:

Redirect 301 /files/Media/Statistics/Germany/services%202003-2012.pdf$  http://domain.com/_fileuploads/entries/Statistics/services%202003-2012.pdf

RewriteRule ^/files/Media/Statistics/Germany/services%202003-2012\.pdf$ http://domain.com/_fileuploads/entries/Statistics/services%202003-2012.pdf [NC,R=301,L]

RedirectMatch 301 /files/Media/Statistics/Germany/services%202003-2012.pdf$ http://domain.com/_fileuploads/entries/Statistics/services%202003-2012.pdf

上述解决方案都不适合我,我总是得到 404 not found 非常感谢您的明智输入。

4

2 回答 2

0

最好仅将 mod_rewrite 用于此目的并避免使用 mod_alias。

通过启用 mod_rewrite 和 .htaccess httpd.conf,然后将此代码放在您.htaccessDOCUMENT_ROOT目录下:

Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On
RewriteBase /

RewriteRule ^files/Media/(.+)$ /_fileuploads/entries/$1 [L,NC,R=301]
于 2013-07-09T17:12:05.280 回答
0

问题是,在从浏览器栏中复制 URL 时,空格会被 %20 填充到文本编辑器中。

这个解决方案实际上对我有用,将 %20 替换为 [\ |%2520]:

RewriteRule 
^/files/Media/Statistics/Germany/services[\ |%2520]2003-2012\.pdf
"http://domain.com/_fileuploads/entries/Statistics/services 2003-2012.pdf"
于 2013-07-11T22:28:41.793 回答