【问题标题】:A little bit help in url rewriting, please!请在 url 重写方面提供一点帮助!
【发布时间】:2011-06-03 21:35:26
【问题描述】:

我有一个关于 url 重写的简短问题...

我有一个网站。假设http://www.example.com/

有一些子网站:

http://www.example.com/a.php
http://www.example.com/b.php

等等……

还有一些“特殊”的网址,比如

http://www.example.com/c.php?i=1#link1
http://www.example.com/c.php?i=1#link2
http://www.example.com/c.php?i=2#link1

现在我想写一个 .htaccess 文件来将当前的 url 转换成重写的 url,比如

http://www.example.com/a/
http://www.example.com/c/1/#link1

我不是 url 重写方面的专家,所以有人可以帮助我吗?

最好的问候。

【问题讨论】:

  • 当问一个 url 重写问题时,如果你提供一些输入输出对是最有帮助的。一个具体的例子和一般规则,用简单的英语,会很好。

标签: url mod-rewrite url-rewriting


【解决方案1】:
RewriteRule ^a$ a.php [L]

RewriteRule ^c/(.*)/(.*) c.php?i=$1$2

【讨论】:

  • 可能更通用一点(没有 a.php 和 c.php)?
【解决方案2】:
Options +FollowSymLinks
Options +Indexes
RewriteEngine On
RewriteBase /
RewriteRule ^a.php a/
RewriteRule ^b.php b/

就您的静态页面而言,您不能重写散列,因为散列不会发送到服务器(如here 所讨论的)。如果您需要重写哈希,我建议将哈希更改为另一个 GET 变量(例如 u),在这种情况下,只需将其添加到您的 htaccess:RewriteRule ^c.php?i=(.*)&u=(.*) c/$1/$2。但是,如果您只是打算离开锚点,则可以从重写中省略它,一切都应该没问题(...因为服务器永远不会看到井号/井号),在这种情况下,您应该将其添加到您的代码中@ 987654325@.

【讨论】:

  • RewriteRule ^b.php b/ 这个规则在做什么?
  • 他说他有一些静态页面,并引用了http://www.example.com/a.phphttp://www.example.com/b.php作为例子。我只是彻底地告诉他,如果他有另一页,他将如何重写。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-12-24
  • 2010-12-23
  • 1970-01-01
相关资源
最近更新 更多