【问题标题】:htaccess rewrite rules on Windows server 2008 & Apache not workingWindows server 2008 和 Apache 上的 htaccess 重写规则不起作用
【发布时间】:2013-07-12 06:28:41
【问题描述】:

由于我已经完全重新完成了一个网站,现在必须将旧 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 非常感谢您的明智意见。

【问题讨论】:

    标签: apache .htaccess url-rewriting


    【解决方案1】:

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

    通过httpd.conf启用mod_rewrite和.htaccess,然后把这段代码放到你.htaccessDOCUMENT_ROOT目录下:

    Options +FollowSymLinks -MultiViews
    # Turn mod_rewrite on
    RewriteEngine On
    RewriteBase /
    
    RewriteRule ^files/Media/(.+)$ /_fileuploads/entries/$1 [L,NC,R=301]
    

    【讨论】:

    • 可能是我的一个坏例子。我很抱歉。新 URL 的结构与旧 URL 的结构不同。在某些情况下,文件可能位于完全不同的位置。如果 /files/Media/xxxx.pdf 现在在 /_uploads/somedir/xxxx.pdf 中怎么办?
    • 如果新位置完全不同,那么您就不能有像上面这样的通用规则,而必须写出具体的规则,例如:RewriteRule ^files/Media/(xxxx\.pdf)$ /_fileuploads/entries/$1 [L,NC,R=301] 希望你能顺利进行。
    • 它不起作用.. 我得到内部服务器错误。允许覆盖并在 apache 配置中设置。
    • 你能告诉我你在 Apache 的 error.log 中看到了什么错误
    • 它说:.htaccess: Option MultiViews not allowed here
    【解决方案2】:

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

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

    RewriteRule 
    ^/files/Media/Statistics/Germany/services[\ |%2520]2003-2012\.pdf
    "http://domain.com/_fileuploads/entries/Statistics/services 2003-2012.pdf"
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多