如何使用变量屏蔽URL(.htaccess)

时间:2011-12-12 21:36:19

标签: php .htaccess mod-rewrite url-rewriting mask

我已经查看了与我相似的问题,但这与我的具体例子无关。

第一个URL(要发送到服务器的内容,最初输入到URL栏):www.site.com/?variable1=3&variable2=filename.php

第二个URL(URL栏中显示给用户的内容):www.site.com/filename.php

其中“filename.php”与原始URL中的“variable2”值相同。

我见过the opposite的例子,有人输入第二个网址,然后用第一个网址替换它,但这不是我想要的。

目前我所拥有的:

Options +FollowSymLinks
RewriteEngine On
RewriteBase /
RewriteRule    ^/([A-Za-z0-9]+)$    /?CommID=$1&FileName=$2    [NC,L]

我从this question提供的链接中获得了结构,但这不起作用。

我不是要重定向,只是屏蔽当前的网址,以便它对SEO友好。我需要从URL中获取两个变量才能正确地提取动态内容。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

尝试将以下内容添加到域根目录中的.htaccess文件

Options +FollowSymLinks
RewriteEngine On
RewriteBase /

#if the query string has a commid and a fIlename Param
RewriteCond %{QUERY_STRING} ^CommID=([^&]+)&FileName=([^&]+) [NC]
#redirect users to the Pretty URL of www.site.com/variable1/filename.php
RewriteRule .* /%1/%2? [L,R=301]

#for a URL like this in address bar www.site.com/variable1/filename.php
#CommID will contain variable1 and FileName will contain filename.php
RewriteRule    ^([A-Za-z0-9]+)/([A-Za-z0-9\.]+)$    /?CommID=$1&FileName=$2    [NC,L]

编辑: 还使用查询字符串URL将用户重定向到漂亮的URL