显示规范的重写 URL 并隐藏动态 URL
Display canonical rewritten URLs and hide dynamic ones
我尝试了无数东西,但我找不到一种方法来在浏览器 URL 栏中显示重写的 URL 而不是具有 3 个 get 参数的那个。
我的 "ugly" URL :
http://example.com/archive.php?id=tt2131523&date=20131004&title=graceland
"pretty"URL我需要显示:
http://example.com/tt2131523-20131004-graceland.html
这是我的 .htaccess 文件:
RewriteEngine on
RewriteCond %{HTTPS} off
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule .* http://%1%{REQUEST_URI} [R=301]
RewriteCond %{HTTPS} on
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule .* https://%1%{REQUEST_URI} [R=301]
RewriteRule ^([^-]*)-([^-]*)-([^-]*)\.html$ /archive.php?id=&date=&title= [NC,L]
我的其他 PHP 文件服务于 "ugly" 链接,链接有效但 URLs 仍然 "ugly"。 "prettyfied" 版本未显示。
如果我在浏览器中键入 "pretty" URL,重写会成功,我会访问该页面。
我希望,即使用户键入 "ugly" 版本,他也会被重定向到 "pretty" 版本。
我是否需要更改我的链接结构(在其他 php 文件中)并使它们直接指向 URL 的重写版本,或者在 .htaccess 中是否有办法显示重写后的版本 ?
顺便问一下,旗子还好吗?
谢谢。
你可以使用这个:
RewriteEngine On
RewriteCond %{THE_REQUEST} /archive\.php\?id=([^&]+)&date=([^&]+)&title=([^\s]+) [NC]
RewriteRule ^ /%1-%2-%3.html? [NC,R,L]
RewriteRule ^([^-]+)-([^-]+)-([^.]+)\.html$ /archive.php?id=&date=&title= [QSA,L,NC]
我尝试了无数东西,但我找不到一种方法来在浏览器 URL 栏中显示重写的 URL 而不是具有 3 个 get 参数的那个。
我的 "ugly" URL :
http://example.com/archive.php?id=tt2131523&date=20131004&title=graceland
"pretty"URL我需要显示:
http://example.com/tt2131523-20131004-graceland.html
这是我的 .htaccess 文件:
RewriteEngine on
RewriteCond %{HTTPS} off
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule .* http://%1%{REQUEST_URI} [R=301]
RewriteCond %{HTTPS} on
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule .* https://%1%{REQUEST_URI} [R=301]
RewriteRule ^([^-]*)-([^-]*)-([^-]*)\.html$ /archive.php?id=&date=&title= [NC,L]
我的其他 PHP 文件服务于 "ugly" 链接,链接有效但 URLs 仍然 "ugly"。 "prettyfied" 版本未显示。
如果我在浏览器中键入 "pretty" URL,重写会成功,我会访问该页面。
我希望,即使用户键入 "ugly" 版本,他也会被重定向到 "pretty" 版本。
我是否需要更改我的链接结构(在其他 php 文件中)并使它们直接指向 URL 的重写版本,或者在 .htaccess 中是否有办法显示重写后的版本 ?
顺便问一下,旗子还好吗?
谢谢。
你可以使用这个:
RewriteEngine On
RewriteCond %{THE_REQUEST} /archive\.php\?id=([^&]+)&date=([^&]+)&title=([^\s]+) [NC]
RewriteRule ^ /%1-%2-%3.html? [NC,R,L]
RewriteRule ^([^-]+)-([^-]+)-([^.]+)\.html$ /archive.php?id=&date=&title= [QSA,L,NC]