【问题标题】:two consequtive rewrite rules not working in htaccess两个连续的重写规则在 htaccess 中不起作用
【发布时间】:2018-08-03 18:23:05
【问题描述】:

这是我的.htaccess 文件

RewriteCond %{REQUEST_FILENAME} !-f
<FilesMatch “.(ttf|otf|eot|woff)$”>
<IfModule mod_headers.c>
Header set Access-Control-Allow-Origin “domain.com”
</IfModule>
</FilesMatch>
Options +FollowSymLinks -MultiViews

RewriteEngine On
RewriteRule   ^[A-Za-z-]+/([A-Za-z0-9-]+)/?$  viewpost.php?id=$1   [QSA,NC,L]
RewriteRule   ^[A-Za-z-]+/([A-Za-z0-9-]+)/?$  category.php?id=$1   [QSA,NC,L]

除了第一个重写规则有效而第二个无效。

【问题讨论】:

  • 我不知道我错过了什么。

标签: apache .htaccess mod-rewrite url-rewriting


【解决方案1】:

这是因为您在第一个 RewriteRule 末尾使用了标志 [L]。

[L] 标志导致 mod_rewrite 停止处理规则集。在 大多数情况下,这意味着如果规则匹配,则没有其他规则 将被处理。这对应于 Perl 中的最后一个命令,或者 C 中的 break 命令。使用此标志来指示当前 规则应立即应用,无需考虑进一步的规则。

Rewrite Flags 上的文档。

【讨论】:

  • 即使在删除 L 之后,第二部分也不会得到处理。现在该怎么办??
猜你喜欢
  • 2017-08-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多