.htaccess搜索引擎&用户友好的URL' s

时间:2016-12-02 19:12:13

标签: php .htaccess

网站结构:

  • 站点根
    • / Desktop / - 对于在domain.com上看到的所有内容
    • / Mobile / - 有关在m.domain.com上看到的所有内容
    • / Admin / - 有关在admin.domain.com上看到的所有内容

的.htaccess

RewriteEngine On
Options FollowSymLinks
RewriteRule ^([-_a-zA-Z0-9]*)/([-_a-zA-Z0-9]*)/([-_a-zA-Z0-9]*)$ $1.php?id=$2&name=$3

我已经尝试将其置于SITE ROOT/Desktop/

问题

我已经设置了一个只有domain.com/company.php的测试页<h1>Hello World</h1>

转到:http://domain.com/company.php?company_id=74&name=DesignSourceLtd

&#34; Hello World&#34;显示器

转到:http://domain.com/company/74/DesignSourceLtd

显示404页面。

问题(S)

如何制作我的网址搜索引擎&amp;用户友好和所有前面的页面&#39; company显示company.php模板?

2 个答案:

答案 0 :(得分:2)

解决方案1 ​​

你可以通过像这样创建.htaccess文件来处理index.php中的所有URI(所以你可以根据需要处理任何参数和其他好处):

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond &{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [QSA,NC,L]

使用explode('/',$_SERVER['REQUEST_URI'])访问参数,您可以包含company.php

解决方案2

您可以为company.php创建特定句柄

Options +FollowSymLinks
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond &{REQUEST_FILENAME} !-d
RewriteRule ^company\/([-_a-zA-Z0-9]*)\/([-_a-zA-Z0-9]*)$ company.php?company_id=$1&name=$2[QSA,NC,L]

解决方案2没有捕获第一个url参数,因为你的GET查询对于company.php是特定的

答案 1 :(得分:1)

您的选项应该是Options +FollowSymLinks - 不确定这是否会影响结果。你的正斜杠也应该被转义。试试regex101.com进行测试。

请参阅https://regex101.com/r/PQpiLt/1