我正在尝试为我的网站制作更清晰的网址。我已经发现很多关于删除URL中的文件扩展名的问题并设法使其正常工作。我想通过将 http://www.site.com/news.php?id=1 等网址转换为 http://www.site.com/news/1/ 来更进一步。我找不到这个具体问题的答案,所以我在这里问。我怎么能像这样实现URL?
重写我在htaccess中已有的规则:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(([A-Za-z0-9\-]+/)*[A-Za-z0-9\-]+)?$ $1.php
答案 0 :(得分:0)
有很多问题可以回答你的问题。你有两件事要做:
您可以找到mod_rewrite here的文档。此解决方案使用[END]
标志,该标志仅在Apache 2.3.9及更高版本中可用。您可以找到文档here。第一条规则中的尾随?
会丢弃查询字符串。
#Redirect ugly url to fancy url
RewriteCond %{QUERY_STRING} id=([^&]*)
RewriteRule ^news\.php$ news/%1/? [R]
#Internally rewrite fancy url to a usable url
RewriteRule ^news/([^/]*)/?$ news.php?id=$1 [END]