htaccess rewrite:在最后一次斜杠后作为参数获取文本

时间:2014-12-24 13:31:31

标签: apache .htaccess mod-rewrite rewrite

我正在使用此规则

RewriteRule ^([^/]+)/?$ index.php?p=$1 [L,QSA]

重写此

  

www.domain.com/123

到这个

  

www.domain.com/index.php?p=123

哪种方法正常。

但是,我需要能够在技术参数前插入一些用于搜索引擎优化的关键字,因此可见的URL看起来像这样:

  

www.domain.com/a/b/c/123

我仍然只需要在最后一个斜杠之后的文本(或者,如果有一个尾部斜杠,则在最后两个斜杠之间。)

我想以前已经回答了这个问题,但我找不到它......

由于 圣拉斐尔

1 个答案:

答案 0 :(得分:1)

您可以使用:

RewriteEngine on 
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(?:.+/)?(\d+)/?$ index.php?p=$1 [L,QSA]

不需要带-d和-f的行。这是为了防止您使用只有数字名称的文件夹或文件。这种情况很少发生......