【问题标题】:Adding more directories to url using mod_rewrite使用 mod_rewrite 向 url 添加更多目录
【发布时间】:2016-08-23 11:41:00
【问题描述】:

我正在使用 mod_write 从我的数据库中提取 url。我让它在基本级别上工作,但我坚持的是使用从数据库中提取的各种 slug 作为 URL 中的目录来创建复杂的 URL。

目前使用 mod_rewrite 之前的 url 如下所示:

www.domainname.co.uk/company?=1&staff=3

这会将您带到适当样式的公司页面中的员工资料。

但我希望 URL 看起来像:

www.domainname.co.uk/COMPANY-NAME/STAFF-NAME

我的 htaccess 目前看起来像:

RewriteEngine On
RewriteRule ^c/(.*)$ ./company.php?company=$1

这会导致 URL

www.domainname.co.uk/c/COMPANY-NAME

如何添加二级目录?

【问题讨论】:

    标签: php apache .htaccess mod-rewrite


    【解决方案1】:

    您可以为此使用附加规则:

    RewriteEngine On
    
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^([\w-]+)/([\w-]+)/?$ company.php?company=$1&staff=$2 [L,QSA]
    
    RewriteRule ^c/([\w-]+)/?$ company.php?company=$1 [L,QSA,NC]
    

    【讨论】:

      【解决方案2】:
      RewriteEngine On
      RewriteBase /
      RewriteRule ^([a-zA-Z0-9_-\.]+)/([a-zA-Z0-9_-\.]+)(/?)$ /company.php?company=$1&staff=$2 [NC,L]
      
      
      That should allow urls of the type:
      www.domainname.co.uk/COMPANY-NAME/STAFF-NAME
      

      【讨论】:

      • 如果我想添加一个规则去 www.domainname.co.uk/COMPANY-NAME 它会不会像 RewriteRule ^([a-zA-Z0-9_-\.] +)(/?)$ /company.php?company=$1 [NC,L] ?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-05-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-15
      • 2022-01-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多