假设有一个像http://domain.com/aaaa/bbb/ccc/ddd
这样的字符串我想使用.htaccess文件来获取最后一个元素,在本例中为ddd。
我正在使用:
RewriteRule(。*)/ $?pt = $ 1 [L]
但它仅适用于斜杠。
答案 0 :(得分:2)
那是因为你的正则表达式包含一个尾部斜杠。
尝试:
RewriteRule ([^/]+)/?$ ?pt=$1 [L]
斜线后面的问号表示“零或一”。如果您不想要这种行为,请相应地更改正则表达式。
修改强>
因为重写指令将在重写完成后重新运行(至少在每个目录上下文中),所以确保在完成所需的重写后不再重新运行规则是很重要的。有多种方法可以实现这一目标,但其中一种方法是:
RewriteCond %{QUERY_STRING} !pt
RewriteRule ([^/]+)/?$ ?pt=$1 [L]
RewriteCond
的要点是当某个地方已经存在RewriteRule
的查询字符串时,阻止pt
被应用,这将是重写的一个线索已经发生了。更复杂的规则可能需要更多或不同的RewriteCond
指令。
答案 1 :(得分:0)
有效:
RewriteEngine On
RewriteRule ^([A-Za-z0-9]+)$ /index.php?content=$1 [L]
它将更改以下网址:
http://example.com/anypage
进入
http://example.com/index.php?content=anypage
但它会覆盖所有内容并忽略参数。因此,最好是 添加额外的限制。