ede*_*ado 1 .htaccess mod-rewrite apache2
假设像http://domain.com/aaaa/bbb/ccc/ddd这样的字符串
我想使用 .htaccess 文件获取最后一个元素,在本例中为 ddd。
我在用:
RewriteRule (.*)/$ ?pt=$1 [L]
但它仅适用于尾部斜杠。
那是因为您的正则表达式包含尾部斜杠。
尝试:
RewriteRule ([^/]+)/?$ ?pt=$1 [L]
Run Code Online (Sandbox Code Playgroud)
斜杠后面的问号表示“零或一”。如果您不希望出现这种行为,请相应地更改正则表达式。
编辑:
由于重写指令将在重写完成后重新运行(至少在每个目录上下文中),因此确保在已实现所需重写后不会重新运行规则非常重要。有多种方法可以实现这一目标,但其中一种是:
RewriteCond %{QUERY_STRING} !pt
RewriteRule ([^/]+)/?$ ?pt=$1 [L]
Run Code Online (Sandbox Code Playgroud)
的目的RewriteCond是防止RewriteRule当某处已经存在查询字符串时应用pt,这将是重写已经发生的线索。更复杂的规则可能需要更多或不同的RewriteCond指令。
| 归档时间: |
|
| 查看次数: |
4837 次 |
| 最近记录: |