.htaccess更改查询字符串

时间:2013-03-01 01:55:29

标签: .htaccess mod-rewrite

这是我的网址:

localhost/myweb/home.php

现在我刚刚使用以下代码删除了文件扩展名:

RewriteEngine on  
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php

然后转向:

localhost/myweb/home

它工作正常。

现在我想更改此网址:

localhost/myweb/home.php?str=tmprow

到此:

localhost/myweb/home/tmprow

1 个答案:

答案 0 :(得分:1)

您可以尝试这样的事情:

Options +FollowSymlinks -MultiViews
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)/?([^/]+)?/?  $1.php?str=$2  [L,NC]

无声地映射

http://localhost/myweb/par1

带有或不带斜线的

http://localhost/myweb/par1/par2

要:

http://localhost/myweb/par1.php

http://localhost/myweb/par1.php?str=par2

根据实际设置RewriteBase,将/myweb设置为DocumentRoot

假设所有字符串都是可变的,而假定myweb是固定的。

对于永久重定向,请将[L,NC]替换为[R=301,L,NC]