【问题标题】:mod_rewrite not using multiple rulesmod_rewrite 不使用多个规则
【发布时间】:2009-12-02 21:30:45
【问题描述】:

我仍然对 mod_rewrite 感到很迷茫,因为它对我来说非常新。我正在尝试为更好的网址设置一些规则。然而,在玩了一段时间之后,它似乎只使用了列出的第一条规则。例如,如果我转到“/frontpage/some-post-slug”,它可以完美运行,但如果我转到“/page/some-page-slug”,我会收到 500 内部服务器错误。有谁知道这是什么原因造成的?

我的 .htaccess 文件完整如下:

<IfModule mod_rewrite.c>

    Options +FollowSymLinks

    RewriteEngine on

    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d

    RewriteRule ^frontpage/([A-Za-z0-9-]+)*$ /frontpage/?slug=$1 [NE,L]
    RewriteRule ^page/([A-Za-z0-9-]+)*$ /page/?slug=$1 [NE,L]

</IfModule>

感谢您的帮助!

【问题讨论】:

  • 您可以使用RewriteLog /path/to/your/rewrite.logRewriteLogLevel LEVEL 打开重写日志,其中LEVEL 为0-9,以查看Apache 正在做什么。

标签: apache url mod-rewrite


【解决方案1】:

如果删除 $ 符号前的 * 会发生什么?我从不使用它们,我的规则和你的几乎一样。

【讨论】:

  • 哈哈。我想我对正则表达式的了解还不够多。那照顾了它。惊人的。顺便说一句,我真的很想设置它,以便第二条规则类似于 RewriteRule ^/([A-Za-z0-9-]+)*$ /page/?slug=$1 [NE,L]所以要说一个联系页面,网址不会是/page/contact,它只是/contact。起初我尝试这样做,他们只是假设 mod_rewrite 在“/”目录上很挑剔。你知道我是怎么做到的吗?
  • 好吧...没有星号^^
猜你喜欢
  • 2012-04-22
  • 1970-01-01
  • 2011-03-12
  • 1970-01-01
  • 2012-07-23
  • 2013-01-19
相关资源
最近更新 更多