使用apache重写时如何隐藏URL更改?

cEM*_*EMa 8 apache .htaccess mod-rewrite redirect url-rewriting

使用apache重写时如何隐藏URL更改?我已经在这个问题上搜索了几个小时,并决定来这里找出答案.所以任何帮助/线索将不胜感激!

现在我正在使用:

RewriteRule ^/Page/(.*)$ http://domain.com/page.cfm?pagevar=$1 [NC,L]
Run Code Online (Sandbox Code Playgroud)

问题是,当你去导航http://domain.com/Page/abc123 它工作.但是,它将浏览器网址更改为http://domain.com/page.cfm?pagevar=abc123,

我希望它执行相同的操作,但显示http://domain.com/Page/abc123作为网址.

拜托,对此有任何见解将非常感谢!再次感谢.

Pri*_*rix 7

第一条规则会将丑陋的URL重定向到漂亮的URL格式.

第二条规则将在内部重定向它,因为用户将看不到丑陋的URL.

Options +FollowSymLinks -MultiViews

RewriteEngine On
RewriteBase /

# Redirect /page.cfm?pagevar=abc123 to /Page/abc123
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/+page\.cfm\?pagevar=([^&\s]+) [NC]
RewriteRule ^ /Page/%1? [R=301,L]

# Internally forward /Page/abc123 to /page.cfm?pagevar=abc123
RewriteRule ^Page/(.*)/?$ /page.cfm?pagevar=$1 [QSA,NC,L]
Run Code Online (Sandbox Code Playgroud)

以上规则将用于.htaccess文件,并假定page.cfm您的域文件夹的根目录与文件一起.htaccess.

像你提出的例子一样.