0

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

因此,例如,如果我访问 website.com/companyname-contact/,它将在浏览器栏中显示该 url,但实际上加载了一个通用的 contact.php 页面,然后我可以使用 php 为该特定公司名提取正确的联系方式.

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

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

谢谢

4

2 回答 2

2

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

RewriteEngine On 


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

然后在你的contact.php

  • 确定公司名称是否有效 - 检查 db 或您使用的任何方法。(确保转义输入)
  • 如果无效,您有几个选择:
    • 重定向到您的默认 404 页面
    • 发出一个智能警告页面(即包括数据库中的替代拼写建议)并设置一个 404 标题。(更好的海事组织
    • 如果数据库中类似的公司名称可能会重定向到页面顶部的注释
于 2014-03-04T14:58:24.620 回答
0

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

这是您的 htaccess 可能喜欢的示例:

RewriteEngine On
RewriteRule    ^contact/([A-Za-z0-9-]+)/?$    contact.php?company=$1    [NC,L]
于 2014-03-04T14:53:08.517 回答