【发布时间】:2017-05-01 20:40:54
【问题描述】:
我想使用 .htaccess 制作对 seo 友好的网址。
我想转换下面的网址
http://localhost/projectname/pagename.php?id=1
到
http://localhost/projectname/pagename/1
我已经尝试过解决这个问题
RewriteRule ^pagename/([a-zA-Z0-9]+)/$ projectname/pagename.php?id=$1
但它不起作用
我也参考了下面的链接,但没有给我正确的解决方案
How to write htaccess rewrite rule for seo friendly url
Creating SEO friendly urls using htaccess
.htaccess 文件
Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On
RewriteBase /
RewriteRule ^pagename/([a-zA-Z0-9]+)/$ projectname/pagename.php?id=$1
## hide .php extension
# To externally redirect /dir/foo.php to /dir/foo
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s([^.]+)\.php [NC]
RewriteRule ^ %1 [R,L,NC]
## To internally redirect /dir/foo to /dir/foo.php
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^ %{REQUEST_URI}.php [L]
使用上面的 htaccess 文件,我可以从 url 中删除 .php 扩展,但不能生成 seo 友好的 url。
非常感谢您。
【问题讨论】:
-
您可以使用AltoRouter 来执行此操作。
-
通过创建函数和调用函数没有 altorouter 我可以轻松转换 url 但我想使用 .htacesss 来实现它,这就是我问的原因
标签: php .htaccess url-rewriting