清理URL重定向htaccess

时间:2014-01-16 22:58:39

标签: php .htaccess mod-rewrite

我有一个网站SongsBar.com,当在我的网站上搜索查询时,浏览器中的网址会显示如下 - http://songsbar.com/download.php?q= {搜索文字}。 我希望它看起来像http://songsbar.com/download/ {搜索文本} .html

4 个答案:

答案 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标志可能不是必需的。这取决于你计划放入参数的东西类型。该标志确保特殊字符被编码。