【问题标题】:creating clean urls using .htaccess使用 .htaccess 创建干净的 url
【发布时间】:2014-02-09 16:07:26
【问题描述】:

您好,我有一个包含记录集记录的动态表的页面,我已成功显示此记录,但是单击动态表上的任何项目时,它会给我一个丑陋的 url

localhost/sms/mem.php?id=8"

但我想将此网址转换为类似的内容

localhost/sms/mem/8

我已阅读并尝试创建干净的网址, 但它似乎自动将我的网址转换为干净的网址,这是我尝试过使用的地方

RewriteEngine On
RewriteRule ^([a-zA-Z0-9]+)$ mem.php?id=$1
RewriteRule ^([a-zA-Z0-9]+)/$ mem.php?id=$1

我是不是做错了什么,因为网上解释的方式看起来很简单

【问题讨论】:

  • 仅供参考,您的两个正则表达式可以简化为^([a-zA-Z0-9]+)/?$。最后一个问号使其前面的字符可选。

标签: php regex apache .htaccess mod-rewrite


【解决方案1】:

将此放在现有规则之前

RewriteEngine On
RewriteBase /sms/

RewriteCond %{REQUEST_METHOD} POST
RewriteRule ^ - [L]

RewriteCond %{THE_REQUEST} \s/+sms/mem\.php\?id=([^\s&]+) [NC]
RewriteRule ^ mem/%1? [R=301,L]

RewriteRule ^mem/([a-zA-Z0-9]+)/?$ mem.php?id=$1 [L,QSA,NC]

这应该是/sms/.htaccess文件中的地方

【讨论】:

  • 嘿似乎有一点进展,但我想出了这个错误“localhost/C:/xampp/htdocs/sms/mem/9”而不是localhost/sms/mem/9
  • 以上.htaccess 的位置是什么?是在htdocs 还是htdocs/sms
  • kkkk 会回来找你的
  • luvly 像魅力一样工作,谢谢,所以当我将文件上传到远程服务器时,仍然可以使用相同的 sn-p 实现这一点。
  • 当然可以。如果您遇到任何问题,请返回 SO,我们将为您提供帮助。
猜你喜欢
  • 1970-01-01
  • 2013-09-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-04-24
  • 1970-01-01
  • 2015-02-25
  • 2015-11-01
相关资源
最近更新 更多