Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/286.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 如何创建包含单个文件的目录?_Php_Url_Url Rewriting - Fatal编程技术网

Php 如何创建包含单个文件的目录?

Php 如何创建包含单个文件的目录?,php,url,url-rewriting,Php,Url,Url Rewriting,我将签署企业在我的网站上做广告,我希望他们有一个直接的URL供他们的客户访问 比如,不是www.website.com/page.php?id=3242344 我想要www.website.com/businessname 有没有一个简单的方法可以做到这一点?我已经搜索并看到了很多人们试图做的事情,但我没有看到任何与我想做的事情相同的事情 我使用的是VPS,我想确保我没有打开权限,这样任何人都可以进入那里,把事情搞砸 此外,这些用户不会自己注册。我会这么做的 获得最终结果的最简单方法就是我所寻找

我将签署企业在我的网站上做广告,我希望他们有一个直接的URL供他们的客户访问

比如,不是
www.website.com/page.php?id=3242344

我想要
www.website.com/businessname

有没有一个简单的方法可以做到这一点?我已经搜索并看到了很多人们试图做的事情,但我没有看到任何与我想做的事情相同的事情

我使用的是VPS,我想确保我没有打开权限,这样任何人都可以进入那里,把事情搞砸

此外,这些用户不会自己注册。我会这么做的


获得最终结果的最简单方法就是我所寻找的。谢谢

基本URL重写可以工作

添加到.htaccess文件中

 RewriteEngine on
 RewriteRule ^(.*)$ page.php?businessname=$1 [L]
然后使用PHP将businessname重写为公司ID/查找数据


当然。如果您需要更复杂的重写,htaccess重写规则是一门完整的科学…

基本URL重写可以工作

添加到.htaccess文件中

 RewriteEngine on
 RewriteRule ^(.*)$ page.php?businessname=$1 [L]
然后使用PHP将businessname重写为公司ID/查找数据


当然。如果您需要更复杂的重写,那么htaccess重写规则是一门完整的科学。

再重复一下jtheman所说的内容,并稍加解释:

创建名为.htaccess的文件,其内容如下:

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ page.php?businessname=$1 [L]
当然,您需要启用directory level.htaccess的功能—您使用的是VPS,因此如果尚未启用,您应该能够这样做

让我解释一下每一行都会做什么

RewriteEngine on
启用重新写入URL的功能

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
告诉Apache不要重新定向目录中已经存在的文件

RewriteRule ^(.*)$ page.php?businessname=$1 [L]
这就是魔法发生的地方

^(.*)$
此部分类似于正则表达式匹配。它将告诉Apache收集包含任何字符的URL,并将它们重定向到page.php?businessname=(*)

因此,如果您发布:
www.website.com/stackover

它将真正发送:
www.website.com/page.php?businessname=stackover

然后您可以使用
$\u GET[businessname]
动态更新页面


希望这有帮助

再重复一下杰希曼说的话,再解释一下:

创建名为.htaccess的文件,其内容如下:

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ page.php?businessname=$1 [L]
当然,您需要启用directory level.htaccess的功能—您使用的是VPS,因此如果尚未启用,您应该能够这样做

让我解释一下每一行都会做什么

RewriteEngine on
启用重新写入URL的功能

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
告诉Apache不要重新定向目录中已经存在的文件

RewriteRule ^(.*)$ page.php?businessname=$1 [L]
这就是魔法发生的地方

^(.*)$
此部分类似于正则表达式匹配。它将告诉Apache收集包含任何字符的URL,并将它们重定向到page.php?businessname=(*)

因此,如果您发布:
www.website.com/stackover

它将真正发送:
www.website.com/page.php?businessname=stackover

然后您可以使用
$\u GET[businessname]
动态更新页面


希望这有帮助

假设您使用的是apache,这就是您想要的:假设您使用的是apache,这就是您想要的:@Madbreaks没有apache的VP不多。。。当然,所有的一切都可能存在…谷歌:视窗vps:)但是,你得到了我的+1anyway@Madbreaks此外,他还在用PHP编写脚本。。。我不认为你会为Windows VPS增加额外的费用,然后安装运行IIS的PHP…@Madbreaks对我来说就是Apache…:)@没有apache的VP不多。。。当然,所有的一切都可能存在…谷歌:视窗vps:)但是,你得到了我的+1anyway@Madbreaks此外,他还在用PHP编写脚本。。。我不认为你会为Windows VPS增加额外的费用,然后安装运行IIS的PHP…@Madbreaks对我来说就是Apache…:)谢谢你的澄清。。。那我就不必详细说明我的答案了+1感谢您的澄清。。。那我就不必详细说明我的答案了+1.