我有这样的链接:
www.domain.com/page.php?id=1#info
我只想隐藏.php来获取此信息:
www.domain.com/page?id=1#info
出于这个原因,我发现了这个.htaccess脚本:
上的RewriteEngine
# to make `/path/index.php` to /path/
RewriteCond %{THE_REQUEST} ^GET\s(.*/)index\.php [NC]
RewriteRule . %1 [NE,R=301,L]
RewriteCond %{THE_REQUEST} ^GET\s.+\.php [NC]
RewriteRule ^(.+)\.php$ /$1 [NE,R=301,L,NC]
RewriteCond %{REQUEST_URI} !\.php$ [NC]
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule . %{REQUEST_URI}.php [L]
这完全可以完成工作并且可以在除safari之外的所有浏览器中工作,它将输出:
www.domain.com/page?id=1
#info消失了。
浏览器如何解释.htaccess不同?有人可以帮我写出正确的.htaccess文件吗?
答案 0 :(得分:2)
Safari的行为与每个浏览器的行为方式相同:
片段取决于文档MIME类型,并且由评估 客户端(Web浏览器)。客户不应发送 URI片段 服务器检索文档时没有帮助 本地应用程序(见下文)片段不参与HTTP 重定向。
简单地说:#
之后的URL部分不应由浏览器发送到服务器。浏览器应该在本地处理。这意味着在应用重定向(重写规则)时可能会松散片段。