我试图将我的网站链接看起来像website.com/gH25ih而不是website.com/link/index.php?id=1。所以我现在尝试的是这个
Options +FollowSymLinks
RewriteEngine On
RewriteBase /
RewriteRule ^link/index/([0-9]*)/([a-zA-Z0-9\-\_])*$ link/index.php?id=$1
但它只是从website.com/link/index.php?id=1更改为website.com/link/index/1/name
答案 0 :(得分:0)
这不是你的规则如何设计工作。在重写中你有2个规则但只有1个变量$1
- 随机字符串需要是指向db记录的指针(在大多数情况下),但你有一个数字id。
RewriteRule ^([a-zA-Z0-9\-\_]+)$ link/index.php?id=$1 [NC,L]
应该允许website.com/gH25ih
之类的链接,但前提是gH25ih
与您尝试检索的资源有某种关联
答案 1 :(得分:0)
您需要维护随机网址到真实网址的映射,但以下重写可行:
RewriteCond %{REQUEST_FILENAME} ! -f
RewriteCond %{REQUEST_FILENAME} ! -d
RewriteRule ^(.*)$ /link/index.php?id=$1 [L]
索引php脚本会查找给定的随机字符。
作为旁注:为什么模糊URL而不是从ID迁移到带有标题的更具语义/更好的URL?