显示规范的重写URL,并隐藏动态的URL

yoann44

我已经尝试了无数种方法,但是找不到在浏览器URL栏中显示重写的URL的方法,而不是显示带有3个get参数的URL的方法。

我的“丑陋”网址:

http://example.com/archive.php?id=tt2131523&date=20131004&title=graceland

我需要显示的“漂亮” 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=$1&date=$2&title=$3 [NC,L]

我的其他PHP文件均提供“丑陋”链接,但这些链接有效,但URL仍为“丑陋”。不显示“ prettyfied”版本。

如果我在浏览器中键入“漂亮” URL,则重写工作正常,并且可以访问该页面。

我希望,即使用户键入“丑陋”的版本,他也将被重定向到“漂亮”的版本。

我是否需要更改链接结构(在其他php文件中)并使它们直接指向URL的重写版本,或者.htaccess中是否有办法显示重写的版本?

顺便说一句,旗帜还可以吗?

谢谢。

阿米特·维玛(Amit Verma)

您可以使用:

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=$1&date=$2&title=$3 [QSA,L,NC]

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章