ubuntu下的apache2启用rewrite

在控制台输入

sudo a2enmod rewrite

提示:

Enabling module rewrite 

成功开启后并出现如下提示:

Run '/etc/init.d/apache2 restart' to activate new configuration!

提示重启后更新新的配置。
控制台输入:

 sudo /etc/init.d/apache2 restart 

重启后完成就完成了。

补充:
主要注意以下几点
1, apache一定得开启mod_rewrite ##在phpinfo里面的load modules栏目里找到或者httpd.conf里面有一堆LoadModule的地方找到就可以了,一般默认都开着
2, httpd.conf 基于路径的allowoverride设置 比如你的joomla装在/documentroot/test里面,应该在类似的地方添加

   <Directory /test>
   Allowoverride .htaccess      ##或者 Allowoverride all ,,,,, Order和Deny参数可以不写
   </Directory>

3, .htaccess中的 RewriteBase / 这里,如果你配置基于路径的虚拟主机,比如

   <virtualhost *:80>
   .....
   documentroot /.../root/test
   ....
   </virtualhost>

的话
即便joomla安装在subfolder里,RewriteBase这里也不用改,因为这个东西似乎是针对url的
4,RewriteCond一定要按路径改
5, 先把htaccess.txt改成.htaccess再从后台开seo开关

jquery 获取 url 参数

方法如下:

function getUrlParam(name){
    var reg = new RegExp("(^|&)"+ name +"=([^&]*)(&|$)"); //构造一个含有目标参数的正则表达式对象
    var r = window.location.search.substr(1).match(reg);  //匹配目标参数
    if (r!=null)
        return unescape(r[2]); //返回参数值
    return null;
}

git rebase master出现冲突,当前分支为no branch的解决方法

假设master分支下有A,B,C三个commits,另外一个分支newbranch是从master的B分支checkout出去的,在newbranch已经有D,E两个commits,并且master的C commit跟newbranch的E commit存在冲突(如刚好修改到同一行),这个时候在newbranch分支下执行git rebase master的时候出现一下提示信息:

First, rewinding head to replay your work on top of it…
Applying: commit from branch
Using index info to reconstruct a base tree…
Falling back to patching base and 3-way merge…
Auto-merging README
CONFLICT (content): Merge conflict in README
Failed to merge in the changes.
Patch failed at 0001 commit from branch

When you have resolved this problem run “git rebase –continue”.
If you would prefer to skip this patch, instead run “git rebase –skip”.
To restore the original branch and stop rebasing run “git rebase –abort”.

这是因为master分支上最后一个commit跟当前分支(newbranch)的最后一个commit存在冲突,git不能自动完成rebase当前分支到master分支的最后一个commit,这个时候执行git branch发现当前的分支是*(no branch)。根据上面的提示信息,我们要人工解决冲突,使用git mergetool解决完冲突后,使用git commit -am ‘message’提交,再然后用git rebase –continue完成rebase。

之后可以执行git checkout master回到master分支,执行git merge newbranch把newbranch合并到master分支,这个时候不会有任何冲突,会出现“Fast-forward”(即“快进”,对于这种合并,git内部不需要做任何真正的merge,只需要直接将HEAD指针由原来master的C位置移到newbranch的E位置,当然,这个时候所谓newbranch的E位置已经是master的E了,因为已经把newbranch合并到master了),直接合并成功,并且执行git log –graph可以看到master分支上的所有提交都是线性的(linear),尽管从log信息我们看到了来自newbranch的commit,这个也是rebase区别于merge的地方。

关于最后在master分支下执行git merge newbranch再详细说一下为什么git在这个时候可以Fast-forward。

因为在newbranch分支下执行git rebase master之后,newbranch的base commit就已经是master的C commit了,而不是原先的B commit,所以当最后回到master分支之后,再执行git merge newbranch,git知道这个不可能会有冲突的,所以只需要Fast-forward就可以了。也是由于Fast-forward的原因,最后的git log信息是线性的。

Ubuntu下将应用程序添加到Ubuntu程序菜单中

正题

以本人安装得 SublimeText2 为例
创建Linux Desktop Entry:就是将SublimeText2添加到Ubuntu程序菜单中
步骤:
  •     打开终端输入:
    sudo gedit/usr/share/applications/cdt-SublimeText2.desktop

该条命令的含义:在/usr/share/applications/目录下创建一个名为cdt-SublimeText2.desktop文件,该路径用于放置你看到的 程序菜    单中的所有程序,有兴趣可以用nautilus浏览。

  • 在弹出的gedit空白编译器中写入以下内容:

    [Desktop Entry]
    Name=SublimeText2
    GenericName[zh_CN]=SublimeText2性感的编译器
    GenericName=SublimeText2 so Sexy
    Comment=SublimeText2
    Exec=Sublime\ Text\ 2/sublime_text
    Terminal=false
    Icon=sublime_text.png
    Type=Application
    Categories=Development;IDE;
  • 简单参数说明:
    [Name]菜单项显示的名称
    [GenericName]应用程序的通用名称
    [GenericName[zh_CN]]国际化显示,当本地编码与之相符则显示相应的内容
    [Exec]调用的命令
    [Terminal]布尔值,若为真则是“在终端下运行”
    [Icon]表示相应的图标文件名称(将Icon图标放在 /usr/share/pixmaps/ 目录下)
    [Type]Desktop Entry文件的类型,Application表示该Desktop Entry文件指向了一个应用程序
    [Categories]该项只有在”Type”是”Application”时才有效。该项表示相关应用程序在菜单中显示的类别。
  •  图标文件的处理:
    将应用程序得Icon图标,放入以下文件夹中。
    系统会自动依次在以下几个目录中查找$HOME/.icons-->$XDG_DATA_DIRS/icons -->/usr/share/pixmaps
    因此将图标放入到/usr/share/pixmaps/目录中以便所有用户都可以使用到
    在终端输入:

    sudo cp Sublime\ Text\ 2/Icon/128x128/sublime_text.png /usr/share/pixmaps/sublime_text.png 

    cp是复制文件得命令 后面跟两个路径,一个是复制源的地址,一个将要粘贴到的是目标地址,这里我用的是sublimetext得icon为例,
    大家可以举一反三

  • 到这里就算是大功告成了,希望你通过实际的操作,能更加熟悉linux的环境!

ubuntu美化安装苹果mac主题包!!!

首先下载该主题包:
推荐:下载地址一
文件比较大,有30多M,下载完成后,用归档管理器将它解压到/home/主文件夹下,你会得到一个“Mac4Lin_Install_v1.0”目录,里面有一个“Mac4Lin_Install_v1.0.sh”文件
1.首先给它赋予执行的权限,终端输入:
cd ~/Mac4Lin_Install_v1.0
sudo chmod +x Mac4Lin_Install_v1.0.sh
或直接鼠标右键选择“属性”-“权限”,然后勾选“允许以程序执行文件”

2.再在终端输入命令进行安装:
./Mac4Lin_Install_v1.0.sh
安装过程可能会提示你[y/n],全部输入y然后回车即可,当屏幕提示“Press any key to continue…”表示已安装完成,按任意键结束。[英语不好,打开星际译王,搞清楚提示的意思,没有坏处]
然后进入“系统”-”首选项“-”外观“,你可以看到刚才安装的mac主题在这里了,选择它就行了。在背景一项中,选择”添加“,依次为:/home/主文件夹/Mac4Lin_v1.0/Wallpapers,在里面选择相应的壁纸即可。

注意:
主题包安装完成后,窗口的”最小化“”关闭“等按钮默认是在左边,如果不习惯,可以更改“Mac4Lin_Install_v1.0.sh”文件,方法:
在终端输入:gedit ~/Mac4Lin_Install_v1.0/Mac4Lin_Install_v1.0.sh
在打开的文件中,你可以看到其中有这么一行:
gconftool-2 –set /apps/metacity/general/button_layout –type string “close,minimize,maximize:menu”
将它改成:
gconftool-2 –set /apps/metacity/general/button_layout –type string “menu:minimize,maximize,close”
然后保存,重新安装后,窗口的”最小化“”关闭“等按钮就会显示在右边啦。

在终端输入

gconf-editor

这将调出 gconf-editor 窗口。下滚至App->Metacity->general,双击右侧的button_layout并将内容改为close,minimize,maximize:menu,点击ok并关闭gconf-editor

卸载主题包:
跟安装差不多,在终端里输入:
cd ~/Mac4Lin_Install_v1.0
./Mac4Lin_Uninstall_v1.0.sh
就可以卸载该主题包啦。

感谢参考
http://hi.baidu.com/zdon/blog/item/5077b9107760eccca6ef3f22.html
http://www.ownlinux.cn/2008/08/18/turn-your-ubuntu-hardy-to-mac-osx-leopard.html

天朝十八大闭幕

一大早看到微信,习近平和胡锦涛高风亮节。。

一上QQ又是。。习近平和胡锦涛高风亮节。。

一上微博又是。。习近平和胡锦涛高风亮节。。

一上新闻网又是。。习近平和胡锦涛高风亮节。。

我眼睛都瞎了呀。。