【问题标题】:Why doesn't this mod_rewrite rule work?为什么这个 mod_rewrite 规则不起作用?
【发布时间】:2013-05-02 03:52:05
【问题描述】:

当我尝试使用这条规则时:

RewriteEngine On
RewriteRule ^articleID/([^/]*)$ /viewArticle.php?articleID=$1 [L]

它会将我转到 404 页面。

我不精通如何使用 htaccess,所以我很可能做错了什么。我使用 generateit.net 上的工具生成它

我正在尝试访问 http://majornoob.com/devel/testdesign/articleID/5,这将等于 http://majornoob.com/devel/testdesign/viewArticle.php?articleID=5

【问题讨论】:

  • 如果您在要使用 mod_rewrite 规则的 url 上添加详细信息/示例会很好
  • 什么意思?抱歉 - 我可以在帖子中添加什么内容?

标签: php .htaccess get


【解决方案1】:

尝试添加一个 RewriteBase:

RewriteBase /

还要确保您的服务器接受 htaccess 文件。服务器配置是否在您的目录指令中包含 AllowOverride all 语句。

【讨论】:

  • 感谢您的回答,但不幸的是这不起作用。我仍然收到错误消息。
  • 目录指令,那是什么?我检查了 HostGator 支持,他们说他们接受 htaccess 文件并且 mod_rewrite 确实有效。
  • 在这种情况下,您可以跳过该部分...添加 / 吗?在 ^ 为你工作之后?
  • 不,但是我在第一个 $ 前面添加了 \.html 并且它现在可以工作,但它似乎已经剥夺了我所有的样式,任何线索为什么?
  • 你如何包含你的风格?您必须添加 ../ 前缀。由于重写,样式位于上层目录中。
【解决方案2】:

有了路径,它应该可以工作:

RewriteRule articleID/([^/]*)$ /devel/testdesign/viewArticle.php?articleID=$1 [L]

【讨论】:

  • 是的!谢谢你。虽然我的css仍然被剥离。知道为什么吗?
猜你喜欢
  • 2015-02-26
  • 2013-11-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多