Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/8.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 .htaccess白色标签站点的url重写_Php_Apache_.htaccess_Mod Rewrite_White Labelling - Fatal编程技术网

Php .htaccess白色标签站点的url重写

Php .htaccess白色标签站点的url重写,php,apache,.htaccess,mod-rewrite,white-labelling,Php,Apache,.htaccess,Mod Rewrite,White Labelling,我正在建立一个简单的网站,只有一个主页和一个联系人页面,我想知道我是否可以使用.htaccess重写不同公司的URL 因此,例如,如果我访问website.com/companyname-contact/它将在浏览器栏中显示该url,但实际上加载了一个通用contact.php页面,那么我可以使用php为该特定companyname提取正确的联系人详细信息 这需要适用于不同的公司名称(例如,website.com/anothercompany contact/),但仅适用于一系列经批准的公司名称

我正在建立一个简单的网站,只有一个主页和一个联系人页面,我想知道我是否可以使用.htaccess重写不同公司的URL

因此,例如,如果我访问website.com/companyname-contact/它将在浏览器栏中显示该url,但实际上加载了一个通用contact.php页面,那么我可以使用php为该特定companyname提取正确的联系人详细信息

这需要适用于不同的公司名称(例如,website.com/anothercompany contact/),但仅适用于一系列经批准的公司名称

我意识到这可能是不可能的,但我想我应该问一下,因为我今天早上花了大约4个小时在谷歌上搜索,但没有真正的进展


谢谢

是的,你可以。您需要启用重写引擎,然后才能使用正则表达式来完成您要做的事情

这是htaccess的一个示例:

RewriteEngine On
RewriteRule    ^contact/([A-Za-z0-9-]+)/?$    contact.php?company=$1    [NC,L]

除非您想在.htaccess文件中手动列出批准的公司名称(该文件看起来很难看),否则我建议您:

RewriteEngine On 


  RewriteRule (.*)-contact$ /contact.php?company_name=$1 [L,QSA,NC]
然后在您的contact.php中

  • 确定公司名称是否有效-检查db或您正在使用的任何方法。(确保退出输入)
  • 如果无效,您有两个选项:
    • 重拨到默认的404页面
    • 发布一个智能警告页面(即包括db中的其他拼写建议),并设置404标题。(海事组织)
    • 如果db中的类似公司名称可能重定向到该名称,并在页面顶部添加注释

实际上,我不同意HTTP响应。每当您使用服务器端逻辑来处理服务器响应时,最好采用HTTP标准,因为a)它有助于防止站点的内部逻辑如何工作,b)它使响应代码实际有意义(作为标准),以及c)它使机器人爬行和潜在API更加一致,并且可以随时滚动。想象一下,如果有人在其外部博客上与一家公司交叉链接,但名称拼写错误。如果搜索引擎点击404并关闭而不是索引一个警告页面,那会更好。可能404转到了一个自定义页面。@Anthony By warning我指的是一个警告页面,带有对情况的特定评论(如建议匹配相似的拼写或自动重定向到相似的拼写),但带有404状态代码,而不是通用的整个站点404页面啊,所以自定义404。我个人不会提供建议,只是为了安全,但这并不是一个交易的破坏者。只是想就好的HTTP响应发表意见。很多人认为应该避免使用404,这是错误的。或者认为他们应该用404,当他们的意思是403或410,等等。我是一个小茶壶也没有经常使用。非常感谢@nickwilde。您的解决方案非常有效。我还不知道该怎么读允许的公司名称。我可能会通过DB或xml文件来实现。