使用.htaccess缩短网址

时间:2015-11-29 15:56:20

标签: apache .htaccess mod-rewrite

我不知道.htaccess这么多。我想做的是缩短我的网址。我在Google上搜索并找到了很多解决方案。仍然没有一个正在工作。
例如,我的网址是" example.com/video?id = 12345 / filename"。我想要一个类似" example.com/video/12345/filename"的网址。我试过这个RewriteEngine on
RewriteRule ^video video?id=$1 [QSA]

但它没有用。请帮忙。

这是我的.htaccess代码

Options +FollowSymLinks -MultiViews -indexes
RewriteEngine On
RewriteBase /
# remove .php; use THE_REQUEST to prevent infinite loops
RewriteCond %{THE_REQUEST} ^GET\ (.*)\.php\ HTTP
RewriteRule (.*)\.php$ $1 [L,R=301]
RewriteRule ^video/([0-9]+)/.+$ video?id=$1 [L,QSA]

RewriteRule ^video/([0-9]+)/.+$ video?id=$1 [L,QSA]

ErrorDocument 404 /index.php

1 个答案:

答案 0 :(得分:0)

我想这就是你要找的东西:

RewriteEngine on
RewriteRule ^video/([0-9]+)/(.+)$ video?id=$1/$2 [L,QSA]

但我建议您放弃filename,不需要它来传递文件。由于您有一些数字ID,您当然可以使用某种形式的数据库来存储引用文件的物理位置。在这种情况下,上述内容必须改为:

RewriteEngine on
RewriteRule ^video/([0-9]+)/ video?id=$1 [L,QSA]

另一个一般提示:如果可能的话,您应该总是喜欢将这些规则放入http服务器的真实主机配置中。如果真的不可能,您应该只回退到.htaccess样式文件,例如因为您无法访问http服务器配置。原因是.htaccess样式文件非常容易出错,存在安全风险,难以调试且确实减慢了服务器速度。