我有一个网站SongsBar.com,当在我的网站上搜索查询时,浏览器中的网址会显示如下 - http://songsbar.com/download.php?q= {搜索文字}。 我希望它看起来像http://songsbar.com/download/ {搜索文本} .html
答案 0 :(得分:1)
的.htaccess
RewriteEngine On
RewriteRule ^download/([^/]*)\.html$ /download.php?q=$1 [L]
答案 1 :(得分:0)
http://httpd.apache.org/docs/current/mod/mod_rewrite.html
类似于:RewriteCond%{REQUEST_FILENAME}
答案 2 :(得分:0)
你可以通过以下方式实现这一目标:
RewriteEngine On
RewriteBase /download/
RewriteCond %{REQUEST_FILENAME} !-f #if the file actually exists don't rewrite
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)\.html$ /download.php?q=$1 [L]
答案 3 :(得分:0)
首先,您需要确保关闭多视图(mod_negotiation),否则会混淆/download/
和/download.php
内容。
然后,您需要从外部重定向download.php
然后你需要在内部将/download/
个请求重新重写到php文件中(浏览器不会发生这种情况。
Options -Multiviews
RewriteEngine On
RewriteCond %{THE_REQUEST} \ /+download.php\?q=([^&\ ]+)
RewriteRule ^ /download/%1.html? [L,R=301,NE]
RewriteRule ^download/(.+)\.html$ /download.php?q=$1 [L,B,QSA]
B
标志可能不是必需的。这取决于你计划放入参数的东西类型。该标志确保特殊字符被编码。