htaccess在php中重写URL

时间:2011-10-28 06:06:43

标签: php .htaccess url-rewriting

请帮助在php中通过htaccess将动态网址转换为静态网址。

示例1:

www.example.com/say.php?name=ksrtc-palakkad-kerala&id=c669239(动态网址)

www.example.com/say/ksrtc-palakkad-kerala-c669239.html(静态网址)


示例2:

www.example.com/index.php?name=ksrtc-palakkad-kerala&id=c669239(动态网址)

www.example.com/say/ksrtc-palakkad-kerala-c669239.html(静态网址)

此致 PRABHAT

1 个答案:

答案 0 :(得分:3)

你应该创建一个看起来像这样的.htaccess:

RewriteEngine on

# if a directory or a file exists, use it directly
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

# otherwise forward it to index.php
RewriteRule . index.php [L]

现在完整路径将被重定向到index.php - 这将是您的单一入口点,如果我记得很清楚,您可以通过$_SERVER['REQUEST_URI']访问它。

现在编写一组规则以了解此url匹配的所有可能路由(正则表达式),然后解析url并相应地设置GET变量(从第二个示例 - name,id)将是你的工作。如果网址与任何已知网址不匹配,请将其转发到您的错误页面。

而且你应该做反向路由,如果有人用普通的get变量打开一个url,比如“index.php?name = ksrtc-palakkad-kerala& id = c669239”,你应该用301 PERMANENT REDIRECT重定向到“SEO “url”/say/ksrtc-palakkad-kerala-c669239.html“

如果这不能回答你的问题,请详细说明。