0

我正在尝试在 htaccess 中设置通用规则,以使用不同的查询字符串删除 .php 扩展名和链接,例如

domainname.com/welcome.php?user=normal&type=free&uid=100
domainname.com/welcome.php?user=normal
domainname.com/welcome.php?log=new&theme=red

和预期的链接,如

domainname.com/welcome?user=normal&type=free&uid=100
domainname.com/welcome?user=normal
domainname.com/welcome?log=new&theme=red

htaccess 文件中的规则集,如:

RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule ^(.*)/welcome/$ $1/welcome.php? [QSA,NC,L]

但有些怎么行不通。难道我做错了什么。

4

2 回答 2

1

在根目录的 .htaccess 文件中试试这个:

Options +FollowSymlinks -MultiViews
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_URI}  !welcome\.php [NC]
RewriteRule ^welcome/?  /welcome.php      [NC,L]

查询字符串将自动传递。

于 2013-04-04T18:22:35.927 回答
0

您的答案和评论中的规则集是无序的。如果你想用查询字符串/$dynamic重写/$dynamic.php,你必须试试这个代码:

Options+ FollowSymlinks
RewriteEngine on

RewriteCond %{REQUEST_URI} ^/([a-z0-9-_]+)/?$
RewriteRule ^(.*) /%1.php [QSA]

甚至/index1, /index2, /index3,/etc也会被重写。

于 2013-04-04T19:07:40.707 回答