【问题标题】:Drupal mod rewrite directory to query stringDrupal mod 重写目录以查询字符串
【发布时间】:2012-10-18 05:12:43
【问题描述】:

我已经在 stackoverflow 上看到过这个问题被问/回答了几次,但我找不到任何适合我的解决方案。我确定这是我误解 mod rewrite 的工作原理的一个案例。

我正在尝试重写:

节点/45/完成/sid/ 到 node/45/done?sid=

我正在使用 Drupal,因此已经有一些 mod 重写条目(见下文)可能会干扰我见过的其他解决方案。对于上面解决的任何问题,我应该把它放在哪里?

<IfModule mod_rewrite.c>
  RewriteEngine on

  RewriteRule "(^|/)\." - [F]

  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteCond %{REQUEST_URI} !=/favicon.ico
  RewriteRule ^ index.php [L]

  <IfModule mod_headers.c>
    RewriteCond %{HTTP:Accept-encoding} gzip
    RewriteCond %{REQUEST_FILENAME}\.gz -s
    RewriteRule ^(.*)\.css $1\.css\.gz [QSA]

    RewriteCond %{HTTP:Accept-encoding} gzip
    RewriteCond %{REQUEST_FILENAME}\.gz -s
    RewriteRule ^(.*)\.js $1\.js\.gz [QSA]

    RewriteRule \.css\.gz$ - [T=text/css,E=no-gzip:1]
    RewriteRule \.js\.gz$ - [T=text/javascript,E=no-gzip:1]

    <FilesMatch "(\.js\.gz|\.css\.gz)$">
      Header set Content-Encoding gzip
      Header append Vary Accept-Encoding
    </FilesMatch>
  </IfModule>
</IfModule>

【问题讨论】:

    标签: mod-rewrite drupal-7 directory query-string


    【解决方案1】:

    由于正常的“RewriteRule ^ index.php [L]”规则具有 [L] 标志,因此不会再执行其他规则。因此,您需要在该规则之前添加您的规则。 "RewriteRule "(^|/)." - [F]" 行是一项安全预防措施,因此我会在此之后立即添加您的规则。我相信如果您不将 [L] 标志添加到您的规则中,它将落入默认规则。

    【讨论】:

    • 谢谢克里斯。把它放在哪里已经回答了,现在我只需要弄清楚如何 - 特别是进行重定向所需的语法
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-25
    • 1970-01-01
    • 2014-11-10
    • 2011-03-02
    • 1970-01-01
    相关资源
    最近更新 更多