删除URL中的文件名

时间:2014-03-30 12:45:27

标签: .htaccess mod-rewrite url-rewriting

如何使用mod_rewrite删除url中的文件名。

例如:searchpage-some+search.html进入some+search.html

这是我的.htaccess代码。

RewriteCond %{THE_REQUEST} ^(GET|POST)\ /searchpage\.php\?search=(.*)\ HTTP
RewriteRule ^searchpage\.php$ /searchpage-search-%2.html? [R,L]

#Internal rewrite
RewriteRule searchpage-search-(.*)\.html$ searchpage.php?search=$1 [L]

这适用于使用$ _GET请求的搜索表单。这很好用的只是我想删除文件名。如果有人能提供帮助,我真的很感激。

1 个答案:

答案 0 :(得分:1)

在您的示例中,您有searchpage-some+search.html,但在您的htaccess中,您实际上是将其重写为searchpage-search-some+search.html

但要从链接中删除searchpage-search,只需从RewriteRule中删除searchpage-search-即可。你的htaccess就像是

RewriteEngine On

RewriteCond %{THE_REQUEST} ^(GET|POST)\ /searchpage\.php\?search=(.*)\ HTTP
RewriteRule ^searchpage\.php$ /%2.html? [R,L]

#Internal rewrite
RewriteRule (.*)\.html$ searchpage.php?search=$1 [L]