请帮助在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
答案 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“
如果这不能回答你的问题,请详细说明。