Php htaccess重写非html请求

Php htaccess重写非html请求,php,html,apache,.htaccess,mod-rewrite,Php,Html,Apache,.htaccess,Mod Rewrite,我已使用SiteScopper osx应用程序将动态.asp站点迁移到静态站点。。。 如果您直接访问,一切都可以完成 旧网址: http://www.mysite.com/content.asp?L=1&IdMen=158‎ 新网址: http://www.mysite.com/content.asp-L=1&IdMen=158‎.html 我从旧的推荐入站链接(谷歌、雅虎等)中找不到页面 我想,通过使用.htaccess,重定向所有不包含“.html”的链接到永久重定向太h

我已使用SiteScopper osx应用程序将动态.asp站点迁移到静态站点。。。 如果您直接访问,一切都可以完成

旧网址:

http://www.mysite.com/content.asp?L=1&IdMen=158‎
新网址:

http://www.mysite.com/content.asp-L=1&IdMen=158‎.html
我从旧的推荐入站链接(谷歌、雅虎等)中找不到页面

我想,通过使用.htaccess,重定向所有不包含“.html”的链接到永久重定向太html页面

我尝试过这个,但没有成功:

RewriteEngine On
RewriteCond %{REQUEST_URI} !\.html
RewriteRule ^(.*)$ $1.html [R=301,L]
非常感谢
Frankie

根据示例,如果要修改查询字符串,则需要在
文档\u ROOT/.htaccess
文件中使用此规则:

RewriteEngine On

RewriteCond %{QUERY_STRING} !\.html$ [NC]
RewriteRule !\.html$ %{REQUEST_URI}-%{QUERY_STRING}.html? [L,R=301,NE]

使用此规则:
/content.asp?L=1&IdMen=158‎变成
/content.asp?L=1&IdMen=158‎.html
这就是你想要的吗?几乎可以。。。重定向点指向:
http://www.mysite.com/content.asp?L=1&IdMen=158‎?.html
和无到:
http://www.mysite.com/content.asp?L=1&IdMen=158‎.html
我需要重定向而不使用?以前。我想要的是htmlyes。。。但是在我的web服务器上变成
/content.asp?L=1&IdMen=158‎.?html
Ok确保这是您的第一条规则。我再次测试了它,并且
/content.asp?L=1&IdMen=158‎被重定向到
/content.asp?L=1&IdMen=158‎.html
。另外,请确保在新浏览器中进行测试。我将离线几个小时,然后再检查。重定向工作(我尝试使用新浏览器)。。。但不幸的是,我收到了这样一条消息:找不到
此服务器上找不到请求的URL/content.asp。
这是正确的,因为[content.asp]没有,但是[content.asp?L=1&IdMen=158‎.我很困惑