【问题标题】:Redirect all page on a domain to one file将域上的所有页面重定向到一个文件
【发布时间】:2014-07-16 21:14:31
【问题描述】:

我希望使用 htaccess/mod_rewrite 将域上的所有页面永久重定向到 SAME 域上的一个页面。

基本上,我希望为域请求的任何页面在 domain.com/ 处返回一个保留页面 [即 index.php]

到目前为止,我的大多数尝试都导致错误,因为它们使服务器陷入循环。

提前致谢

.k

【问题讨论】:

    标签: apache .htaccess mod-rewrite http-status-code-301


    【解决方案1】:

    您需要像这样排除要重定向到的目的地:

    RewriteEngine on
    RewriteRule !^index\.php$ /index.php [L,R=301]
    

    如果你只想重定向无法映射到文件系统中现有文件的请求,添加这个条件:

    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule !^index\.php$ /index.php [L,R=301]
    

    但在这种情况下,您应该使用 404 响应。

    【讨论】:

    • 感谢 Gumbo,但重定向所有内容 [css 和图像] 我只想重定向网页
    • @Keet:“网页”是什么?
    • 我的意思是如果一个网页 /some/old/page.html 被请求,index.php 将被返回。但该页面需要其他文件,即图像/js/css 等。在这种情况下,我不希望返回 index.php!
    • @Keet:如何识别这些 URL?
    【解决方案2】:

    这是一个简单的实现:

    RewriteEngine on
    RewriteRule !\.(js|ico|gif|jpg|png|css|html)$ index.php
    

    还有一个更复杂的:

    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} -s [OR]
    RewriteCond %{REQUEST_FILENAME} -l [OR]
    RewriteCond %{REQUEST_FILENAME} -d
    RewriteRule ^.*$ - [NC,L]
    RewriteRule ^.*$ index.php [NC,L]
    

    两者均取自Zend Framework Zend_Controller Programmer's Reference Guide。这是另一个有用的文档Apache Module mod_rewrite

    【讨论】:

    • 谢谢伊万,第一个似乎工作,但它似乎显示与原始页面名称的新页面?只有一个问题,您知道如何将其更改为重定向到新页面的 301,我尝试将 [L,R=301] 添加到行尾,但它破坏了它。
    • 坦率地说,Keet,我真的不明白你想通过强制实际重定向来完成什么。添加R=301 标志意味着告诉您的Apache 服务器始终强制将所有请求重定向到index.php,顺便说一句,这本身就是一个请求,并且一次又一次地被重定向。浏览器只是以无限循环结束,这当然完全破坏了整个事情。
    【解决方案3】:

    ISR 最近在这里问过这个问题 - 但我现在找不到 q。

    为什么不直接设置 404 错误处理程序以指向保留页面(并将所有其他内容排除在文档根目录之外)

    C.

    【讨论】:

    • @symcbean 在这种情况下肯定返回 404 不是最好的 [SEO?] 所有旧页面都有 pagerankings。通过返回 301,这些应该是对新页面 afaik 的更改
    【解决方案4】:

    谢谢大家,

    得到它的工作,这可能对其他人有帮助:

    重写规则!^(index.php)|.(js|ico|gif|jpg|png|css|mp3|xml|swf)$ /index.php [L,R=301]

    .k

    【讨论】:

      猜你喜欢
      • 2013-02-24
      • 2014-09-23
      • 1970-01-01
      • 2011-04-26
      • 2013-02-10
      • 2016-04-20
      • 2013-02-28
      • 2015-09-18
      • 1970-01-01
      相关资源
      最近更新 更多