如何使用多个虚荣URL?

时间:2014-08-02 20:40:33

标签: php mysql .htaccess url vanity-url

所以我的网站上已经有一个虚拟URL用于普通用户个人资料...

basecentre.co.uk/user1

将用户重定向到

basecentre.co.uk/userprofile.php?username=user1

使用以下代码......

<IfModule mod_rewrite.c>
RewriteEngine On 
RewriteCond %{QUERY_STRING} ^thankyou-page=([0-9]*)$ 
RewriteRule ^(.*)$ affilates_redirect.php [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /userprofile.php?username=$1
RewriteCond %{HTTP_HOST} ^www.basecentre.co.uk$ [NC]
RewriteRule ^(.*)$ http://basecentre.co.uk/$1 [R=301,L]
</IfModule>

我也在尝试创建商家资料,并希望做同样的事情,但在我的网站上使用不同的页面,所以说......

basecentre.co.uk/businessprofile.php?businessname=mcdonalds

会变成

basecentre.co.uk/mcdonalds

它不会与普通用户配置文件混淆。 这会有效还是你的网站上只有一个虚荣URL?如果这是真的,我还可以使用其他任何选项吗?

此外,如果可以,如果您的用户名具有相同的商家资料名称,会发生什么?

感谢您的帮助!

2 个答案:

答案 0 :(得分:3)

我建议使用/ user / user1和/ business / macdonalds等URL方案。这将排除任何碰撞。

您还可以保留用户个人资料网址,例如/ user1,并添加/ business / macdonalds作为商家资料的新方案。

最后,做你喜欢的事并非不可能,但这更难,因为有几个限制因素:

  1. 您必须确保用户名永远不会与商家名称相同。
  2. 您无法重定向到userprofile.php或businessprofile.php,但您必须重定向到执行路由的脚本(例如index.php)。
  3. 您必须开发一个路由器,它将查找用户和业务表以找出必须显示哪种类型的配置文件,最后执行正确的.php文件。

答案 1 :(得分:1)

您可以执行以下操作:

RewriteEngine On
RewriteRule ^page/([^/]*)$ /businessprofile.php?businessname=$1 [L]
RewriteRule ^user/([^/]*)$ /userprofile.php?username=$1 [L]

将用户个人资料重定向到basecentre.co.uk/user/...,将商家资料重定向到basecentre.co.uk/page/...