0

是的,我知道这已经被问了数百次了。但我就是找不到真正有效的版本。目前,到目前为止,我尝试过的所有方法都在 remove 中工作.php,但那是问题开始的时候。我网站上的一些页面取决于$_GET请求,例如profile所以当您访问 url http://www.example.com/profile?username=System时,您将获得 404,而没有?username=System它可以正常工作。我目前的代码是

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

2 回答 2

2

您需要[QSA]在 RewriteRule 的末尾(附加查询字符串)。

RewriteRule ^(.*)$ $1.php [QSA]
于 2013-01-15T19:40:00.787 回答
1

你可以试试这个:

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{QUERY_STRING}  .       [NC]
RewriteCond %{REQUEST_URI}  ^/([^/]+) [NC]
RewriteRule .*   %1.php               [L]

会默默地映射这个

http://www.example.com/ScriptName?key1=val1

至:

http://www.example.com/ScriptName.php?key1=val1

于 2013-01-15T20:14:26.580 回答