如何在以下情况下使用mod_rewrite获取一个简短的唯一URL?

时间:2017-07-03 05:48:43

标签: php mysql apache .htaccess mod-rewrite

我编写了类似于pastebin的项目。每个代码段都应该可由每个人都可以访问的一些简短的唯一URL访问。例如,如果我创建一个新片段,那么就会有一个像/ 2k3nan5这样的关联URL。访问yourwebsite.com/2k3nan5的任何人都应该看到该代码段。

我为每个要粘贴的代码段创建一个随机字符串,例如2k3nan5。我存储了代码段(代码)的代码,发布它的用户的用户名(用户名)和随机字符串( url )数据库的代码段表。

如何更改.htaccess呢?

2 个答案:

答案 0 :(得分:0)

mod_rewrite代码删除文件名

<IfModule mod_rewrite.c>
RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-s
RewriteRule ^(.*)$ snippet.php?id=$1 [QSA,NC,L]

RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^(.*)$ snippet.php [QSA,NC,L]

RewriteCond %{REQUEST_FILENAME} -s
RewriteRule ^(.*)$ snippet.php [QSA,NC,L]   
</IfModule>

答案 1 :(得分:0)

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([a-zA-Z0-9]{7})/?$ deltatask/snippet.php?url=$1 [NC,L] 
</IfModule>

这有助于我将www.website.com/abcdefg重写为www.website.com/deltatask/snippet.php?url=abcdefg