Drupal China
其实正常情况下,简洁链接是不需要单独设置apache和.htaccess,本页面是遇到问题时来查询使用的。
缺省情况下,Drupal 用内部的路径参数生成URL,这样的结果就是URL看起来象是:"http://www.example.com/?q=node/83."。这使得很多搜索引擎,比如google,在索引这些页面时被挡在门外。你可以告诉Drupal使用“简洁链接”,以去掉内部链接中的“?q=”。注意,这只能在加载了重写模块(rewrite_module)并且在配置中启用重写模式(mod_rewrite)的apache服务器上能正常工作。
有两种方法可以在Apache中启用URL的重写。如果你有Apache服务器的全部权限的话,可以在httpd.conf文件中启用简洁链接。或者参看更有效率和安全(的apache)
警告:如果你的服务器配置不正确时启用了“简洁链接”可能会导致你回不到管理页面来修复你错误的改动。如果你已经在这种状况,你可以直接键入“非简洁链接” http://www.example.com/?q=admin/settings 来回到管理页面。
启用简洁链接需要下面三步:
LoadModule rewrite_module modules/mod_rewrite.so
AddModule mod_rewrite.c
注意,并不是所有的*nix系统都是这样设置。请查询你的分发版文档中关于apache的部分。我们也建议要禁止Apache 的multiviews功能,因为将会与简洁链接发生冲突。
RewriteBase /如果你不使用Drupal自带的 .htaccess文件,你就要添加重写规则到你的Apache目录定向(directory directive)中。样例请参考 .htaccess file in Drupal.
<Directory /var/www/example.com>
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]
</directory>
你也要设置Allow Override 以使.htaccess的命令能够在你的站点上运行,如果你改变了drupal自带的 .htaccess,你应该把它设置为
AllowOverride All
以保证重写可以启用。参阅"Behind the scenes with Apache's .htacces" 以总观了解 。.htaccess。 这里有个示例。
注意:在标准的Drupal安装中, .htaccess文件已经支持简洁链接了。不过很容易在拷贝时漏掉它,因为前面有个“点”
注意 关于MultiViews: Apache web服务器支持的MultiViews,是一种允许你访问页面时不需要文件的扩展名。比如,你有一个叫"evaluation.txt"的文件,在启用MultiViews的站点,你可以用"example.com/evaluation"来访问到这个文件。就已经知道的情况来说,MultiViews这种方便的功能,会在Drupal启用简洁链接时产生问题。除非你确实知道你在做什么,否则你应该在你计划启用简洁链接的drupal站点上禁止MultiViews。幸运的时,MultiViews在Apache的缺省安装时已经被禁止了。查阅Apache文档进一步了解MultiViews的信息。
待补充页面
* Apache 2 configuration of clean URLs on Debian
* Clean URL Support in Abyss
* Clean URL support in XAMPP
* Clean URLs with different webservers
* Example Clean URL configuration of httpd.conf for performance
* Existing URLs for server overwrite Drupal paths
* IIS CleanURLs using some of the available ISAPI filters.
* Using Clean URLs with IIS
原先只看到英文的说
原先只看到英文的说明,不太明白。现在好了。谢谢。
另见 http://cobra.javaeye.com/blog/143476
支持
支持一下,这个译者应该很辛苦吧,真的为英语基础不好的人作了贡献啊!我是新手,照着这上面弄好了,之前不知道从哪下手呢,呵呵