2

我正在为我的网站开发干净的 URL,我注意到您在互联网上找到的内容几乎是将您的干净 url 重写为您的服务器可以使用的 url。所以是这样的:

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

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

所以现在有了这个,我应该在我的网站内链接到 cleanurl。但直观地说,链接到“脏”网址感觉更可靠/更好。因此,在这种情况下,您应该对上述内容使用重写器规则并使用重定向规则将“脏 url”重新定义为干净的 url,因此用户始终只能在浏览器中看到干净的 url。

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

这是一件好事吗。是网站做的吗?反对/支持它的论据是什么?

你怎么做这样的重定向。像下面这样的东西似乎不起作用:

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

我对 .htaccess 还很陌生,所以我可能会要求一些显而易见的东西......

4

1 回答 1

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

不起作用,因为您无法匹配来自 a 的查询字符串RewriteRule(您的标志中也有一个杂散空间)。您还希望与实际请求而不是 URI 匹配,因为您只会导致来自其他规则的重定向循环。

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /profile\.php\?u=([^&\ ]+)
RewriteRule ^/?profile\.php$ /profile/%1 [R=301,L]
于 2012-09-30T19:44:29.480 回答