URL Rewrite/index.php?page=sample to/sample.htm

URL Rewrite/index.php?page=sample to/sample.htm,php,regex,apache,.htaccess,mod-rewrite,Php,Regex,Apache,.htaccess,Mod Rewrite,对.htaccess很陌生,大部分都不完全了解。无论如何,目的是将/index.php?page=sample重写为sample.htm。(或任何其他页面) 下面的脚本似乎部分有效。如果我键入/sitemap.htm,它会显示该页面,但地址栏会更改为/index.php?page=sitemap。如何将url重写为更友好的url,以便在输入/sitemap.htm时地址保持不变,在键入/index.php?page=sitemap时,它将重定向到/sitemap.htm,但仍然有效 如果我听起来

对.htaccess很陌生,大部分都不完全了解。无论如何,目的是将/index.php?page=sample重写为sample.htm。(或任何其他页面)

下面的脚本似乎部分有效。如果我键入/sitemap.htm,它会显示该页面,但地址栏会更改为/index.php?page=sitemap。如何将url重写为更友好的url,以便在输入/sitemap.htm时地址保持不变,在键入/index.php?page=sitemap时,它将重定向到/sitemap.htm,但仍然有效

如果我听起来很困惑,我道歉

Options +FollowSymLinks -MultiViews
RewriteEngine On
RewriteBase /test/

RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/+getreal\.co\.uk/index\.php\?page=([^&\s]+) [NC]
RewriteRule ^ %1.htm? [L,R=301]

RewriteRule ^(.+?)\.htm?$ index.php?page=$1 [L,R=301]

你很接近。但是
请求不包含域名

请尝试以下代码:

Options +FollowSymLinks -MultiViews
RewriteEngine On
RewriteBase /test/

RewriteCond %{THE_REQUEST} /index\.php\?page=((?!login\b)[^&\s]+) [NC]
RewriteRule ^ %1.htm? [L,R=302]

RewriteRule ^(.+?)\.htm$ index.php?page=$1 [L,NC,QSA]

你很接近。但是
请求不包含域名

请尝试以下代码:

Options +FollowSymLinks -MultiViews
RewriteEngine On
RewriteBase /test/

RewriteCond %{THE_REQUEST} /index\.php\?page=((?!login\b)[^&\s]+) [NC]
RewriteRule ^ %1.htm? [L,R=302]

RewriteRule ^(.+?)\.htm$ index.php?page=$1 [L,NC,QSA]

你好,Anubhava,这确实改变了url,但它进入了一个循环错误:“这个网页有一个重定向循环”现在修复了它。我不知道第二条规则中也有
R=301
。你好,阿努巴瓦,非常感谢。这很有效。不过我还有一个问题。应用此功能后,我无法再登录/注册该网站。有没有办法忽略/index.php?page=login?嗨,阿努巴瓦,这确实改变了url,但它进入了一个循环错误:“这个网页有一个重定向循环”现在修复了它。我不知道第二条规则中也有
R=301
。你好,阿努巴瓦,非常感谢。这很有效。不过我还有一个问题。应用此功能后,我无法再登录/注册该网站。有没有办法忽略/index.php?page=login?