.htaccess url重写白标签网站

时间:2014-03-04 14:40:19

标签: php apache .htaccess mod-rewrite white-labelling

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

因此,例如,如果我访问website.com/companyname-contact/,它将在浏览器栏中显示该URL但实际上加载了一个通用的contact.php页面,然后我可以使用php提取正确的联系详细信息那个具体的公司名称。

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

我意识到这可能是不可能的,但我想我会问,因为我今天早上花了大约4个小时谷歌它并没有真正的进展。

由于

2 个答案:

答案 0 :(得分:2)

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

RewriteEngine On 


  RewriteRule (.*)-contact$ /contact.php?company_name=$1 [L,QSA,NC]

然后在你的contact.php

  • 确定有效的公司名称 - 检查db或您正在使用的任何方法。 (确保逃避输入)
  • 如果无效,您有几个选择:
    • redir到您的默认404页面
    • 发出智能警告页面(即包含数据库中备用拼写的建议)并设置404标头。 (更好的IMO
    • 如果数据库中的类似公司名称可能重定向到页面顶部带有注释的公司名称

答案 1 :(得分:0)

是的,你可以。您需要启用重写引擎,然后您将能够使用正则表达式来完成您要执行的操作。

这是你的htaccess所喜欢的一个例子:

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