htaccess的清洁网址是什么做的最好方法是什么?(htaccess clean URL'

2019-08-01 01:24发布

我正在干净的URL为我的网站和我注意到,你在互联网上找到什么是非常想改写你干净的网址,您的服务器可以处理的URL。 因此,像这样:

www.domain.com/profile/username --> www.domain.com/profile.php?u=username

RewriteEngine On
RewriteRule ^profile/(.*)$ /profile.php?u=$1 [L]

所以,现在有了这个,我要我的网站中链接到cleanurl的。 但直观感觉更坚实/更好地链接到“脏”的网址。 因此,在这种情况下,你应该使用上述和重定向规则rederict的“脏网址”清洁网址的RewriteRules,因此用户只有在所有的时间看到干净的网址在浏览器中。

www.domain.com/profile.php?u=username --> www.domain.com/profile/username

这东西是做一件好事。 它是通过网站做了什么? 什么是对/论据支持它?

你怎么做你该做这样的重定向。 像下面的内容似乎不工作:

RewriteRule ^profile\.php?u=(.*)$ /profile/$1 [R=301, L]

我是相当新的htaccess的,所以我可能会问的东西,这是显而易见的...

Answer 1:

RewriteRule ^profile\.php?u=(.*)$ /profile/$1 [R=301, L]

是行不通的,因为你不能对匹配从查询字符串RewriteRule (你也有你的标志流浪空间)。 你也想被对实际的请求,而不是URI匹配,因为你只是会从您的其他规则重定向循环。

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /profile\.php\?u=([^&\ ]+)
RewriteRule ^/?profile\.php$ /profile/%1 [R=301,L]


文章来源: htaccess clean URL's what's the best way to do it?