Apache 2中的URL缩短

时间:2011-05-24 07:31:55

标签: php ubuntu url-rewriting apache2

我的网站主页为/var/www/mysite/index.html 现在我想将www.mysite.com/x2312d引导至/var/www/mysite/app/pass.php?id=x2312d 我该怎么做呢? 我应该在哪里创建.htaccess文件以及它的内容应该是什么?

2 个答案:

答案 0 :(得分:3)

在您的根/var/www

的.htaccess

RewriteEngine On
RewriteBase /
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteRule ^([^\.]+)$ /app/pass.php?id=$1 [NC,L]

答案 1 :(得分:1)

将.htaccess文件放在/ var / www / mysite / app /中。我假设你的docroot是/ var / www / mysite /

确保apache 2启用了重写模块

htaccess的:

RewriteEngine On

#allows you to still access static items in this dir
RewriteCond %{REQUEST_URI} !\.(php|css|js|gif|png|jpe?g)$

#sent it all to pass script
RewriteRule (.*)$ pass.php [L]

我喜欢这种方法,假设pass是某种控制器。我的rest api控制器从$ _SERVER全局变量手动解析/ x23123d,但你可以使用不同的重写来让它在$ _GET / $ _ REQUEST ['id']全局变量中。

类似的东西:

RewriteRule ^app/(.+)$ app/pass.php?id=$1 [PT,L,QSA]

好的参考文献:http://httpd.apache.org/docs/2.0/misc/rewriteguide.html

http://httpd.apache.org/docs/2.0/mod/mod_rewrite.html#rewriterule

编辑:差点忘了,别忘了处理尾随斜杠。