如何使用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请求的搜索表单。这很好用的只是我想删除文件名。如果有人能提供帮助,我真的很感激。
答案 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]