我不知道.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
答案 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
样式文件非常容易出错,存在安全风险,难以调试且确实减慢了服务器速度。