Apache RewriteRule - 将带有查询字符串的url发送到没有的

时间:2014-08-01 13:17:10

标签: apache .htaccess mod-rewrite url-rewriting rewrite

我有一个遗留网址,似乎很多用户都有书签,它看起来像:

www.mydomain.com/dir/?info=mystuff

我希望这能显示以下内容:

www.mydomain.com/mystuff.php

我在htaccess尝试了这个但没有快乐:

RewriteRule ^dir/?info=([^\.]+)$ $1.php [NC,L]

修改

这是我的所有htaccess文件,因为它很重要或其他任何因素导致冲突。

Options +FollowSymLinks -MultiViews
RewriteEngine On

RewriteRule ^dir/list/?$ /downloads/list.pdf [L,QSA]

# THIS DOESN'T WORK...
RewriteCond %{QUERY_STRING} info=([^&]+)
RewriteRule ^/dir\/?$ /%1.php? [L]

RewriteRule ^dir/([^/]+)/?$ /$1 [L,QSA] 

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/.]+)/?$ $1.php [L]


AddType application/octet-stream .pdf

ErrorDocument 404 /404.php

1 个答案:

答案 0 :(得分:1)

你可以这样做:

RewriteCond %{QUERY_STRING} info=([^&]+)
RewriteRule ^/dir\/?$ /%1.php? [L]