【问题标题】:mod_rewrite to redirect url not workingmod_rewrite 重定向 url 不起作用
【发布时间】:2012-07-04 18:17:45
【问题描述】:

似乎无法让 mod_rewrite 工作。当网站是 Flash 时,我们有一个已经在这里、那里和任何地方打印的域名。它在它的尾迹/#login.php 中有一个#,我们希望当人们把它放进去时,它会将他们重定向到/login.php。我已经尝试过这条规则,但无法让它发挥作用:

RewriteEngine On
RewriteRule ^/#login.php$ /login.php

我还通过使用重定向到谷歌检查了重写引擎是否正在工作。只需要过时的 #login.php 即可转到新的 login.php

谢谢

【问题讨论】:

    标签: apache mod-rewrite url-rewriting url-rewrite-module


    【解决方案1】:

    URL(或“片段”)中的# 不会发送到服务器,它纯粹是为了客户端指向页面的某些部分。如果您在地址栏中看到http://hostname.com/#login.php,则服务器收到的唯一内容是对/ 的请求。您可能需要在页面上使用一些 javascript 来查看浏览器的地址栏以查找片段,并可能将其作为查询字符串发送到服务器。

    【讨论】:

    • 这听起来有点超出我的想象。这个网站是继承的,不幸的是,由于它是基于 Flash 的,所以有这个哈希值。不知道为什么。该公司已经打印了他们的宣传,但我们的设计师希望它是/login.php。感谢您的帮助。
    • 我的最后一条评论措辞不当。以 /#login.php 结尾的完整 url 用于转到特定页面进行用户注册。在新站点上,该页面的地址只是 /login.php,而以前的地址默认为不理想的主页。再次感谢。
    • 您需要在主页中添加一些 javascript 来查找 #login.php 片段,如果存在,请重定向到 /login.php
    • 我们想知道是否可以在页面顶部添加一个命名锚点以便#login.php 跳转到它?
    • 浏览器会跳转到它,但仅此而已。我想如果你在 #login.php 锚点处放置一个带有 /login.php 的框架,但页面本身不会重定向到那里。
    【解决方案2】:

    试试:

    RewriteEngine On
    RewriteBase /
    RewriteRule ^#login\.php$ /login.php [QSA,L] 
    

    Mod_rewrite 已启用?可用吗?

    【讨论】:

    • Mod_rewrite 已启用(我使用简单的重定向到 Google 来测试它)。您的解决方案无效,但感谢您的帮助。
    猜你喜欢
    • 2011-09-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-30
    • 2014-07-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多