Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何使用多个虚拟URL?_Php_Mysql_.htaccess_Url_Vanity Url - Fatal编程技术网

Php 如何使用多个虚拟URL?

Php 如何使用多个虚拟URL?,php,mysql,.htaccess,url,vanity-url,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

所以我已经在我的网站上为普通用户配置了一个虚荣的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/mcdonalds
而且它不会与普通的用户配置文件混淆。 这会起作用吗?或者你的网站上只能有一个虚荣URL?如果这是真的,我还有其他选择吗

此外,如果这是可能的,如果你有一个用户名与相同的业务档案名称会发生什么


谢谢你的帮助

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

您还可以将用户配置文件URL保留为/user1,并添加/business/macdonalds作为业务配置文件的新方案

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

  • 您必须确保用户名与企业名称永远不相同
  • 您不能重定向到userprofile.php或businessprofile.php,但必须重定向到执行路由的脚本(例如index.php)
  • 您必须开发一个路由器,它将查找用户和业务表,以确定必须显示哪种类型的概要文件,并最终执行正确的.php文件
    我建议使用像/user/user1和/business/macdonalds这样的URL方案。这将排除任何碰撞

    您还可以将用户配置文件URL保留为/user1,并添加/business/macdonalds作为业务配置文件的新方案

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

  • 您必须确保用户名与企业名称永远不相同
  • 您不能重定向到userprofile.php或businessprofile.php,但必须重定向到执行路由的脚本(例如index.php)
  • 您必须开发一个路由器,它将查找用户和业务表,以确定必须显示哪种类型的概要文件,并最终执行正确的.php文件
    您可以执行以下操作:

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

    这会将用户配置文件重定向到
    basecenter.co.uk/user/..
    ,将业务配置文件重定向到
    basecenter.co.uk/page/..

    您可以执行以下操作:

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

    这会将用户配置文件重定向到
    basecenter.co.uk/user/..
    ,将业务配置文件重定向到
    basecenter.co.uk/page/..

    如果您试图将相同名称的用户配置文件和业务重定向到相同的位置,显然是行不通的。但是你可以做一些事情,比如
    basecenter.co.uk/user/mcdonalds
    basecenter.co.uk/mcdonalds
    ,那么我可以用basecenter.co.uk/page/mcdonalds来做商业简介吗?我该怎么做?什么是“虚荣URL”?如果你试图将相同名称的用户配置文件和企业重定向到同一个地方,显然是行不通的。但是你可以做一些事情,比如
    basecenter.co.uk/user/mcdonalds
    basecenter.co.uk/mcdonalds
    ,那么我可以用basecenter.co.uk/page/mcdonalds来做商业简介吗?我该怎么做?什么是“虚荣URL”?谢谢你的建议,我该怎么做,你知道吗?你的具体问题是什么?开始编码。谢谢你的建议,我该怎么做,你知道吗?你的具体问题是什么?开始编码。