URL Mod-Rewrite

时间:2009-11-09 18:49:07

标签: php mod-rewrite url-rewriting url-routing

我目前有一个有用的网址:

  

http://example.com/security-services.php?service=fixed-camera-surveillance

然后我让PHP说,$_REQUEST['service']做一些事情......

但是如果URL看起来像这样,我想实现相同的功能:

  

http://example.com/security-services/fixed-camera-surveillance

谢谢!

3 个答案:

答案 0 :(得分:4)

具有类似内容的.htaccess文件应该可以。

Options +FollowSymLinks
RewriteEngine On

RewriteRule security-services/(.*)/? security-services.php?service=$1 [L]

security-services/(.*)/?的部分与浏览器中的网址匹配,并将其重写为security-services.php

关键部分是(.*),它捕获URL的那部分并将其作为GET值传递给PHP脚本。

答案 1 :(得分:1)

尝试此规则:

RewriteEngine on
RewriteRule ^security-services/([^/]+)$ security-services.php?service=$1 [L]

[^/]+描述/security-services之后的下一个路径段,(…)形成一个匹配的组,然后可以在替换中引用$1

如果你想要任何类型的…-service.php文件更通用:

RewriteEngine on
RewriteRule ^([^/-]+)-services/([^/]+)$ $1-services.php?service=$2 [L]

答案 2 :(得分:0)

您可以创建如下规则:

RewriteRule ^security-services/(.*)/? /security-services.php?service=$1

如果您使用的是.conf文件,请将^更改为^/