【问题标题】:.htaccess URL masking instead of redirecting [closed].htaccess URL 屏蔽而不是重定向 [关闭]
【发布时间】:2013-02-18 02:11:14
【问题描述】:

我试图掩盖 URL,就像真正的 URL 是 www.somedomain.com/subfolder/index.php?p=page3 它显示 www.somedomain.com/subfolder/page3 一样,我知道这样的问题已经被问了很多在这里,我确实搜索了很多,但大多数结果都没有满足我正在寻找的内容,而且除了有关 htaccess 调整的基础知识之外,我几乎一无所知。

我搜索时得到的一个结果具有以下 htaccess 代码:

选项 +FollowSymLinks
选项 +索引
重写引擎开启
RewriteRule ^index.php$ %{QUERY_STRING} [C]
RewriteRule p=(.*) www.somedomain.com/subfolder/$1? [R=301,L]

它完成了有关 URL 重写的技巧,但它重定向页面而不是仅仅屏蔽 URL,并且它给出了 404 错误,即使我删除了 R=301 它也不起作用。

当我启动子文件夹 www.somedomain.com/subfolder/ 的索引页面时,上面的代码也会出现 500 服务器错误。

最后我想提一下,我正在使用 localhost 中的子目录进行测试,以防万一,因为我在网上找到的一些代码要么根本不起作用,要么提供 500 个服务器错误。

非常感谢。

【问题讨论】:

  • 我将我的答案标记为删除 - 我首先列出了您的目的地,然后列出了您的来源,这让我自己感到困惑,因为您在问题中列出了它们,所以我在回复中将它们颠倒过来(通常更容易按照规则中出现的相同顺序写出你正在做的事情——源,然后是目标)。 @faa 的答案是正确的。对此感到抱歉。

标签: apache .htaccess url-masking


【解决方案1】:

你可以试试这个:

Options +FollowSymlinks
RewriteEngine On
RewriteBase /
# Prevent loops
RewriteCond %{REQUEST_URI} !index\.php         [NC]
RewriteCond %{REQUEST_URI} ^/([^/]+)/([^/]+)/? [NC]
RewriteRule .*  %1/index.php?page=%2           [L]

静默地图:

http://www.somedomain.com/anyfolder/val 带有或不带有斜杠。

以上是在浏览器地址栏中输入并显示的网址。

收件人:

http://www.somedomain.com/anyfolder/index.php?p=val

字符串anyfolderval 被假定为动态的。

对于永久重定向,请将[L] 替换为[R=301,L]

【讨论】:

  • 这个答案是正确的,请注意(@JEES)第二个 RewriteCond 特定于两级目录结构,如您问题中的示例所示。如果您需要将其应用于不同数量的目录级别,则需要对其进行调整。
  • 我想我让每个人都感到困惑,对此我深表歉意,但我想要做的是将动态页面插入 www.somedomain.com/subfolder/index.php?p=page3 生成的所谓“丑陋 URL”转换为像www.somedomain.com/subfolder/page3 这样一个更有吸引力和 SEO 友好的“好 URL”,甚至进入 www.somedomain.com/subfolder/pages/page3,同时仍然加载相同的页面并注入相同的查询字符串。
  • www.somedomain.com/subfolder/page3 这就是我回答中的规则。试试看。不用说www.somedomain.com/subfolder/page3 是链接到或输入并显示在浏览器地址栏中的URL。如果它适合你,我可以修改目录结构中任意数量级别的答案,但是,再次尝试一下。
  • @faa 是的,它只需要对目录级别进行一些调整,现在我添加了另一个子目录 ([^/]+)相应的 %3 。非常感谢@faa 和@David 的帮助和时间,只是对于问题的最后一部分,我在上面的代码中附加了以下行以摆脱 index.php @ 987654334@ 再次感谢。
  • 我遇到了类似的问题,请帮忙看看。这是链接stackoverflow.com/q/37046157/2549581
猜你喜欢
  • 1970-01-01
  • 2012-12-10
  • 2014-07-20
  • 2018-04-19
  • 2011-08-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多