淘小兔

默认的,Drupal为你的网页使用和生成的URLs像"http://www.tao-s.com/?q=node/1373."URLs的这种形式很难被读而且阻碍一些搜索引擎找到你站点的所有页。研究表明可能对于主要的搜索引擎这不像以前是个大问题;然而,值得注意的是来自谷歌推荐的网站管理员指南说明:

 ”如果你决定使用动态页(例如,URL中包含一个“?”字符),必须注意到不是所有搜索引擎爬行动态页像静态 页一样。它帮助保持参数短数量少。

如果你不想使用Drupal中默认的URLs,你可以告诉Drupal使用"clean URLs",清除你网页URLs中的"q="。这个页面讲述了如何去做。下面的说明在很大程度上只适用于大多数服务器的设置,架设在 Unix/Linux上的Apache服务器,有mod_rewrite Apache module配置启用 httpd.conf配置文件中的mod_rewrite。如果你的Drupal运行在不同类型的服务器上,查看下面的链接部分(这页Comments上面的部分)是否有你的服务器配置的相关页面地址。

在Drupal配置中启用clean URLs之前(看下边),你可能需要为clean URLs工作准备你的服务器。在Drupal中有两种方式为clean URLs工作准备你的服务器。如果你可以完全控制你的服务器,例如你使用的是你自己的服务器,在你的个人电脑上安装一个开发站点,或是有一个专用的服务器主机,你应该用httpd.conf文件 clean URLs以获得更好的性能和安全。然而,如果你有一个共享的主机你不需要修改httpd.conf文件,而应该修改Drupal的.htaccess文件。

在Drupal中启用clean URLs

注释:标准的Drupal安装包含一个.htaccess文件支持clean URLs。很容易忘记复制这个文件,因为“dot”。所以在你试图启用Clean URLs之前,确认这个文件存在。

注释:偶尔测试给了一个假的消极的结果。看http://drupal.org/node/1178850。为了避免这种状况确保你得到一个clean URL像http://www.example.co.uk/admin/config/search/clean-urls代替一个没有清除的网址像http://www.example.co.uk/?q=admin/config/search/clean-urls

Drupal 7.x

在Drupal 7中,安装程序测试的兼容性与Clean URLs作为安装过程的一部分。如果环境测试兼容Clean URLs,它将会作为安装过程的一部分,没有进一步行动是必需的在Clean URLs中。

如果你需要启用clean URLs post安装,Drupal会自动运行URL测试当你访问clean URLs配置页面(Administer > Configuration > Search and metadata),显示结果,允许你保存配置。

你可以启用或是禁用按照以下的几部:

1.导入到Clean URLs的配置页(Administer > Configuration > Search and metadata)

2.等待自动Clean URLs测试运行

3.选择没有被选的clean URLs复选框

4.点击 "Save configuration"

即使在安装时你能够成功的Clean URLs,如果你有一个专用的服务器你可能仍然想要遵循步骤(下边)来启用更高效的httpd.conf重写方法clean URLs。如果你选择这样做,你可能想要关掉clean URLs当你在服务器上工作时。

Drupal 6.x

Drupal 6,安装程序测试的兼容性与Clean URLs作为安装过程的一部分。如果安装程序在安装时无法成功地运行测试,你可以遵循下面的说明对Drupal 5 Clean URLs的工作。有一个微小的区别:Drupal 6将运行时自动Clean URLs当你操作Clean URLs配置页面会显示结果,代替给你一个链接手工运行测试。

还请注意,即使在安装时Clean URLs 成功启用,如果你有一个专用的服务器你可能仍然想要遵循的步骤(下边)来启用更高效的httpd.conf重写方法Clean URLs 。如果你选择这样做,你可能想要关掉Clean URLs 而你是在服务器上工作。

Drupal 5.x

这里是Drupal 5 Clean URLs的必要步骤:

1.    进入Clean URL的管理界面(Administer > Site configuration > Clean URLs)。

2.    找到下边的这一段:

“  This option makes Drupal emit "clean" URLs (i.e. without ?q= in the URL.) Before enabling clean URLs, you must perform a test to determine if your server is properly configured. If you are able to see this page again after clicking the "Run the clean URL test" link, the test has succeeded and the radio buttons above will be available. If instead you are directed to a "Page not found" error, you will need to change the configuration of your server. The handbook page on Clean URLs has additional troubleshooting information. Run the clean URL test.

3.    点击这一段最后边的连接Run the clean URL test 。

4.    如果测试成功,设置 Clean URLs为"enabled"并保存。如果设置失败,适用以下的方法设置你服务器的配置再试一遍

低于Drupal 5.x

对于那些低于Drupal 5的版本,没有自动Clean URLs的测试或链接.代替的,你可以手动的测试通过输入Clean URL为你的网页:http://www.example.com/admin/settings(www.example.com被替换成你的主机名).如果在设置页面看到结果,没有错误, Clean URLs安全可行,你可以设置这个页面,按照下边的说明配置你的服务器.

错误修改

启用“Clean URLs“当你的服务器配置不正确 (即如果上面描述的Clean URLs测试失败)可能会使它很难返回管理页面导航撤销你的错误,因为所有的drupal生成菜单和链接的urls将无法工作。如果你发现自己在这种情况下,您可以返回到管理设置页面通过键入"非清洁的形式’URL"http://www.example.com/q=admin/settings  从 Drupal 4.x的admin设置页,或是http://www.example.com/?q=admin/settings/clean-urls  得到Drupal 5或是Drupal 6 Clean URLs的设置页.在那儿,你可以重新设定不使用Clean URLs.

手册中有额外的说明从故障中恢复设置Unset clean URLs的页面。

在专用服务器上配置httpd.conf Clean URLs

在专用服务器上 clean URLs涉及到以下几步:

1.对Apache设置mod_rewrite。你可以查看你的网络主机或查阅Apache文档mod_rewrite得到更多的有关如何做。至少,这将涉及到确保启用了mod_rewrite的Apache的安装。

为了测试mod_rewrite可在起动Apache 2,您可以输入以下在命令提示符,列出所有安装的Apache模块

apache2ctl –M

一些系统可能是

apachectl –M

在输出中,查看rewrite_module是否包含在列表的模块中。

如果重写模块未在列表中,它必须要么进行或使用一个可加载的模块。一般来说,你可以告诉Apache来加载模块,包括

LoadModule rewrite_module modules/mod_rewrite.soAddModule mod_rewrite.c

在你的Apache配置文件中(参见下面的配置文件信息)。一定要确定取消AddModule mod_rewrite.c,如果它是在你的配置文件,但已经被注释掉了。以下可能工作使模块没有编辑任何文件

a2enmod rewrite

注意,这些方法可能不适用于所有操作系统和Apache服务器--查阅Apache文档,这来自于你的Apache软件正确的语法

记得要重起Apache使新的目录生效.

2.下一步是为你的网站找到合适的Apache配置文件.根据你的服务器配置文件,适当的Apache配置文件httpd.conf,一个虚拟的主机特定文件 (vhost.conf),一个特定的网站文件,或是apache2.conf.它们通常位于/etc/httpd/conf</span>/etc/apache2</span>, 或是一个子目录;如果没有,试一下这个命令:

find /etc -name httpd*

从文件系统中找到文件的位置.

“如果你没有对这些文件写权限,Clean URLs不是为你工作便捷,你可以要求你的系统管理员或主机分享者寻求帮助。你可能仍然能够读这些配置文件来解决.

3.下一步是复制drupal特定的设置直接进入您的配置文件.这儿有说明怎样在配置文件中使用Drupal指令

.查看.htaccess的事例规则,正如:

<Directory /var/www/example.com>   RewriteEngine on   RewriteBase /   RewriteCond %{REQUEST_FILENAME} !-f   RewriteCond %{REQUEST_FILENAME} !-d   RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]</Directory>

确保你看的. Htaccess文件为你Drupal的主要版本(i.e., 7.x, 6.x, 5.x).

注意:如果你不想在你的Apache配置文件中重写规则,你仍可以简单地使用Drupal .htaccess文件(如果你使用的是共享主机)。你需要有允许覆盖指令集在设置Apache配置文件(这将允许本地.htaccess覆盖你网站的.htaccess):

AllowOverride AllAccessFileName .htaccess

阅读 Behind the scenes with Apache's .htaccess审查.htaccess。你也可能发现它有助于视图samples of Apache 2 AllowOverride directives

注意关于MultiViews:Apache支持一个特性叫“MultiViews”(更普遍的:“内容协商”),它允许导航到你的页面,而不需要文件扩展名。例如,如果您有一个文件称为“evaluation.txt”,一个MultiViews-enabled网站可以访问这个文件文件用URL“example.com/evaluation”。 MultiViews可以是一个方便的功能灵活的使用,它会引起问题当Drupal的Clean URLs被启用。除非你知道你在做什么,你不应该使用MultiViews如果你计划使用Clean URLs这一Drupal特性。然而,不启用MultiViews是Apache安装默认的,所以可能这个note将不适用。查看Apache的documentation得到MultiViews的大量相关信息

共享服务器上的通过.htaccess配置Clean URLs

标准的Drupal安装包含一个示例.htaccess文件应该足够Clean URLs运行。它很容易错过复制该文件,因为领先的 "dot"。所以在试图启用Clean URLs,确保该文件存在于你安装的Drupal中

如果你有这个文件已被安装,但 Clean URLs仍然不工作,你可以试试下面的一些故障排除建议。如果你仍然无法使 Clean URLs工作,联系你的主机分享商。

解决问题

检查.htaccess被使用

Apache需要显式地告诉遵守你的网站.htaccess文件的说明。默认的是关闭,虽然大多数主机将会把它打开。这就是所有上面的AllowOverride指令所做的——它使.htaccess开始工作。

检查是否是当前的主机甚至要阅读.htaccess,你可以(暂时)添加一些垃圾字符串到文件,试图打破它。由于错误配置当你从该目录加载一个页面你的网站应该立即返回一个“500服务器错误”。(立即删除垃圾字符串)

如果你这样做,你的网站不打破——然后.htaccess会被忽视,你将无法使用clean URLs直到你从你的主机得到支持,或使用配置httpd.conf的方式启用它如上所述。某些主机允许你启用这一选项通过他们的网站管理控制面板,所以先看那里。

RewriteBase设置

主要的配置选项中,你的网站可能需要改变的是RewriteBase。这可以在Drupal .htaccess或在httpd.conf文件中被说明,这取决于你Drupal重写指令在哪里(见上边)。默认情况下,RewriteBase设置被注释掉了的在Drupal的.htaccess文件中,它适用于许多配置。

如果你难以使Clean URLs工作,你可能需要更改此设置。例如,如果您的Apache DocumentRoot是/ var / www /(例如,/ var / www /index.html显示当你浏览http://www.example.com/)和你的Drupal安装子目录/ var /www/mysite/,然后RewriteBase可以设置

RewriteBase /mysite

这可能会有帮助.在一些配置中设置

RewriteBase /

允许clean URLs工作.

$base_url

你可能需要手动设置setting.php文件中的变量$base_url如果你没有设置过。这是目前了解的服务器运行FastCGI可能遇到的问题如果$base_url变量被注释掉了参见(http://bugs.php.net/bug.php?id=19656)。

多站点

RewriteBase</span> 工作当你的Drupal服务器只有一个网站,或是所有的站点服务器域名在同一子目录下。例如,

RewriteBase /

下边的站点将会正常工作:
http://www.example.com/
http://www.example2.com/
http://www.example3.com/

RewriteBase /mysite

下边的站点将会正常工作:

http://www.example.com/mysite

http://www.example2.com/mysite

http://www.example3.com/mysite

然而,如果你的网站是在不同的子目录,RewriteBase不会工作。你将需要创建一个特殊的规则为每个子目录。例如,你的Drupal安装可能分享以下网站:

http://www.example.com/

 http://www.example.com/mysite

为了启用clean URLs为你的站点,你需要添加

RewriteCond %{REQUEST_FILENAME} !-fRewriteCond %{REQUEST_FILENAME} !-dRewriteCond %{REQUEST_URI} ^/mysite/(.*)$RewriteRule ^(.*)$ /mysite/index.php?q=$1 [L,QSA]

在前边重写规则

Index.php的位置

对于一些服务器配置,另一个Drupal .htaccess文件需要改变的地方。在Drupal .htaccess文件末尾的地方找到这样一行:

RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]

你可能需要用index.php URL路径替换你Drupal安装index.php文件(URL后边的部分)。例如:如果你的网站主页的URL是http://example.com/subdir/,你可以使用/subdir/index.php代替index.php。如果你网站的首页URL是http://example.com/,你可以使用/index.php代替index.php。这对于服务器配置是必要的有一些不需要。

用Path Module创建Cleaner URLs 

使用Clean URLs将会生成普通的URLs形式http://www.example.com/node/83.为了改变'node/##'大量的URL像'news/june-1st-news' 站点将需要启用Path module。从Path module handbook page可以找到一些有关path module的信息。

简洁路径

知识兔

 

原文地址:http://drupal.org/getting-started/clean-urls
 
一般而言,对网站的每个页面Drupal都会自动生成一个类似于"http://www.example.com/?q=node/83"的路径。这种格式的路径难以阅读,同时也会影响一些搜索引擎对网站的索引。对主流的搜索引擎而言,这也许不会是一个多大的问题,但正如谷歌站长指导中所申明的那样,启用简洁路径是值得一做的(摘录如下):

如果您决定使用动态网页路径(包含了?字符的路径),必须注意不是每一种搜索引擎的爬虫可以像索引静态网页路径正确的处理动态网页路径。静态网页路径可以保留更少的参数和更少的字符长度。

如果对Drupal默认的路径(比如包含有“?”符号)不是很满意,你可以启用“简洁路径”的功能,这篇文章的主要目的就是教您如何启用这个功能。这篇指导文章针对的是常见的服务器,也就是运行在Unix/Linux上的Apache服务器,同时配置了mode_rewrite Apache 模块,并且在httpd.conf配置文件中启用了mod_rewrite模块。如果你使用其他类型的服务器,可以看看文章后面的文章链接(就是评论上面的文章链接),也许有其他的指导内容。
在启用简洁路径功能之前,你得先设置一下你的服务器,这样简洁路径才可以正常工作。有两种方法进行设置。如果你运行的是自己的服务器,或者在自己的电脑运行服务器,又或者具有一个服务器的特殊账户,总之你有对服务器的绝对控制权!那你可以直接设置httpd.conf文件启用简洁路径的功能,而且更加的高效和安全。不过,如果你使用的是一个共享的服务器账户(比如购买的虚拟主机之类的,大部分的服务器账户都是这样的),没有权限修改httpd.conf文件,这时可以使用Drupal自带的.htaccess文件启用简洁路径功能。

启用简洁路径功能:

注意:Drupal的标准安装包含了一个.htaccess文件用以启用简洁路径的功能。我们很容易忘记复制.htaccess文件,因为它是以点号开头的,在某些系统是隐藏文件。所以,在启用简洁路径之前,确保这个文件在您的安装目录中。

在Drupal 7启用简洁路径功能:

在安装Drupal 7的过程中,它会先测试你的安装环境是否支持简洁路径。如果安装环境支持简洁路径,它会在安装的过程中启用简洁路径,而不需要额外的设置。
如果你需要在安装之后启用简洁路径,可以访问简洁路径配置界面(Administer > Configuration > Search and metadata),它会自动检查是否支持简洁路径,并且显示消息,你也可以修改和保存自己的配置。

使用以下步骤可以启用或者禁用简洁路径的功能:

1,访问简洁路径配置界面(Administer > Configuration > Search and metadata)
2,等待Drupal检查是否支持简洁路径功能
3,选定或者不选定 启用简洁路径功能 的复选框
4,点击保存设置按钮
即使在安装的过程中或者安装之后启用了简洁路径的功能,你可能更加希望通过设置httpd.conf的方法来启用简洁路径的功能(如果你有修改httpd.conf权限的话~),这样可以使网站的运行更加高效和安全。

在Drupal 6.x中启用简洁路径

在安装Drupal 6的过程中,它会先测试你的安装环境是否支持简洁路径。如果在安装的过程中这个测试的功能没有正确的启用,你可以在安装之后通过下面的指导(Drupal 5中将会提及)来启用简洁路径的功能。和Drupal 5最大的不同是:在你访问简洁路径设置界面的时候,Drupal 6会自动检查是否支持简洁路径,而不是像Drupal 5一样分享一个链接让你自己检查。
同样的建议,即使在安装的过程中或者安装之后启用了简洁路径的功能,你可能更加希望通过设置httpd.conf的方法来启用简洁路径的功能(如果你有修改httpd.conf权限的话~),这样可以使网站的运行更加高效和安全。

在Drupal 5.x中启用简洁路径

下面是在Drupal 5启用简洁路径的关键步骤:

1,访问简洁路径配置界面(Administer > Site configuration > Clean URLs in Drupal 5)
2,查看下面的内容:
This option makes Drupal emit "clean" URLs (i.e. without ?q= in the URL.) Before enabling clean URLs, you must perform a test to determine if your server is properly configured. If you are able to see this page again after clicking the "Run the clean URL test" link, the test has succeeded and the radio buttons above will be available. If instead you are directed to a "Page not found" error, you will need to change the configuration of your server. The handbook page on Clean URLs has additional troubleshooting information. Run the clean URL test.
译文:这个选项可以让Drupal启用简洁路径的功能(在路径中没有?q=)。在启用简洁路径之前,你必须检查你的服务器设置是否支持简洁路径。点击"Run the clean URL test"(运行测试简洁路径)链接之后,如果你可以再次看到这个界面,那就表明支持简洁路径,启用简洁路径的按钮就可以使用了。如果你得到的是一个"Page not found"(“网页没有找到”)错误,那您不得不改变服务器的设置。在网站的手册页有更多关于启用简洁路径的文章和常见的错误问答(Drupal官网),也可以参考一下。
3,点击"Run the clean URL test"(运行测试简洁路径)链接
4,如果测试通过,勾选启用简洁路径,保存设置。如果测试不通过,可以试试下面的步骤(后面的内容将会提及)修改您的配置,然后再试几次。

在Drupal 5.x之前版本中启用简洁路径

关于Drupal 5之前版本的设置,小白真心不想翻译了~这个太落后于这个大时代了!

在服务器端设置httpd.conf文件用以启用简洁链接,步骤如下:

1,在Apache服务器启用mod_rewrite模块。首先确定是否安装了mod_rewrite模块,然后启用,这个可以询问服务器的管理员,或者查看相关文档
2,将配置文件放在正确的位置,这个没有权限的话也需要联系服务器管理员。
3,将下面的设置文本添加到你的配置文件中
<Directory /var/www/example.com>
   RewriteEngine on
   RewriteBase /
   RewriteCond %{REQUEST_FILENAME} !-f
   RewriteCond %{REQUEST_FILENAME} !-d
   RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]
</Directory>
更多内容可以参考《how to include the Drupal directives 》
其实对于主流的Drupal版本(Drupal 7 6 5)而言,可以直接使用Drupal自带的.htaccess文件来启用简洁链接的功能。尤其是在你没有权限修改配置文件(比如虚拟主机用户)或者不想修改httpd.conf文件。更多内容可以参考《Behind the scenes with Apache's .htaccess 》《samples of Apache 2 AllowOverride directives
注意:关于Apache的MultiViews功能。
默认的Apache安装不会启用MultiViews功能,除非你确实知道自己在干什么,否则不要启用启用这个功能。这个功能和Drupal的简洁路径有一点点潜在的冲突,更多内容,可以查看相关文档
标准的Drupal安装自动一个.htaccess文件可以确保简洁路径正确的启用。我们很容易忘记复制.htaccess文件,因为它是以点号开头的,在某些系统是隐藏文件。所以,在启用简洁路径之前,确保这个文件在你的安装目录中。

如果您使用了Drupal自带的.htaccess文件,而简洁路径的功能已经无法启用,可以试试下面的方法。如果依旧无法使用,联系服务器管理员哈。

1,检查.htaccess文件是否正确启用

测试方法:胡乱修改.htaccess文件(记得备份!),打断语句,然后访问你的网站,如果返回的是"500 Server Error" ,说明正确启用,然后把文件修改回来。如果你的网站还是正常访问,说明Drupal的.htaccess文件没有正常启用。这时可以联系服务器的管理员,有些主机允许通过后台的管理界面进行设置,所以在麻烦管理员之前可以先看看那里。

2,RewriteBase设置

如果您的服务器的基目录是www文件夹,同时Drupal的index.html也在这个文件夹(就是说你的Drupal安装在这个文件夹)那么默认的 RewriteBase / 可以启用简洁路径;
如果您的服务器的基目录是www文件夹,而Drupal的index.html在www/mysite文件夹(就是说你的Drupal安装在www/mysite文件夹)那么需要将默认的 RewriteBase / 修改为 RewriteBase /mysite 来启用简洁路径;

3,$base_url设置 

如果您的setting.php没有设置$base_url变量,可以通过手动设置,参见:http://bugs.php.net/bug.php?id=19656

4,多站点设置

当启用一个站点,或者你的所有站点都在同一个目录,例如:
RewriteBase /
可以确保以下站点正常工作:
http://www.example.com/
http://www.example2.com/
http://www.example3.com/
 
RewriteBase /mysite
可以确保以下站点正常工作:
http://www.example.com/mysite
http://www.example2.com/mysite
http://www.example3.com/mysite
当然,如果你的站点安装在不同的目录,设置RewriteBase不会正常工作。这是就需要设置一些特殊的规则。比如你的站点安装在如下的目录:
http://www.example.com/
http://www.example.com/mysite
为了确保简洁路径在两个站点都可以使用,你需要添加
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} ^/mysite/(.*)$
RewriteRule ^(.*)$ /mysite/index.php?q=$1 [L,QSA]
这个设置需要添加在已经存在的rewrite规则之前。

5,index.php的文件路径

在Drupal的 .htaccess文件找到如下一行,或者类似的一行:
  RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]
如果你的网站主页路径是 http://example.com/subdir/
你需要吧index.php修改为/subdir/index.php
如果你的网站主页路径是 http://example.com/
你需要吧index.php修改为/index.php
这个设置对某些服务器有用,但不是总是如此。
 
启用简洁路径之后的路径为 http://www.example.com/node/83
如果你需要像 http://www.example.com/news/june-1st-news 这样的路径可以通过使用path相关的模块实现。
更多的内容参见:Path module handbook page
 

对不同环境的系统启用简洁路径

知识兔

原文地址:http://drupal.org/node/717772

这个部分主要说明如何在不同的主机系统启用和配置简洁路径。

(小白注:这个目录相关的文章如下。由于这个是系统管理员的任务,不是网页设计人员的任务,而且一般的主机大家也没有权限设置。为了节约生产力,以下的文章不予翻译,如果需要了解,可以点击相关链接查看。)

Clean URLs with Abyss
Clean URLs with Apache 2 - above DocumentRoot on virtual private servers
Clean URLs with Apache 2 for performance
Clean URLs with Apache 2 on Debian
Clean URLs with Apache 2 on Debian Lenny w/Backports Drupal 6.16 (and Squeeze)
Clean URLs with Apache 2 on Ubuntu
Clean URLs with Boost .htaccess on specific shared hosts
Clean URLs with EasyPHP
Clean URLs with IIS
Clean URLs with Lighttpd
Clean URLs with Mac OS X Server
Clean URLs with Mac OS X Tiger (Client not Server)
Clean URLs with NGINX
Clean URLs with XAMPP
Clean URLs with Zeus
Clean URLs with a Netfirms Server

启用简洁链接后,如果Drupal安装在子目录或子域名,如何设置对后台启用https(SSL)链接同时对前台启用http链接

知识兔

原文地址:http://drupal.org/node/1804604

理解这篇文章需要知道一些其他的东西。除非你真的知道自己在干什么,不然不要试图使用复制粘贴解决问题。
在Drupal7中,我是使用下面的方法设置在后台使用https链接同时在前台使用http链接。以下代码适合于当Drupal安装在子目录或子域名时,设置对后台启用https(SSL)链接同时对前台启用http链接 ,同时也是简洁链接。
首先,在settings.php设置:

if ($_SERVER['SERVER_PORT'] == 443) {$base_url = 'https://address_1.com/subdirectory';} else {$base_url = 'http://subdomain.address_2.com';}

第一个$base_url指的是管理后台的路径。第二个是网站前台的路径。这段代码是检测我们输入的路径,决定启用https或者http链接。
当你没有启用简洁链接的时候,这段代码会工作的非常好,如果启用了简洁链接,它却不会正常工作了~。关键是我们没有设置rewritebase,但是如何设置rewritebase呢?如果对后台设置子目录,那么前台就会报错。如果对前台设置,后台就会报错。如果什么都不设置的话,前台可以正常工作~后台就坑了。查看了Drupal文档之后,可以使用下面的方法解决问题:
查看你的.htaccess文件,将以下的代码:

RewriteCond %{REQUEST_FILENAME} !-fRewriteCond %{REQUEST_FILENAME} !-dRewriteCond %{REQUEST_URI} !=/favicon.icoRewriteRule ^ index.php [L]

替换为以下的代码:

RewriteCond %{REQUEST_FILENAME} !-fRewriteCond %{REQUEST_FILENAME} !-dRewriteCond %{REQUEST_URI} ^/subdirectory/(.*)$RewriteRule ^(.*)$ /subdirectory/index.php?q=$1 [L,QSA]RewriteCond %{REQUEST_FILENAME} !-fRewriteCond %{REQUEST_FILENAME} !-dRewriteCond %{REQUEST_URI} !=/favicon.icoRewriteRule ^ index.php [L]

这些规则的顺序很重要,不然无法正常工作。
这样你就可以在启用简洁路径的前提下对前台使用http链接同时对后台启用https链接了。

 

原文链接:http://drupal.org/getting-started/clean-urls

下载仅供下载体验和测试学习,不得商用和正当使用。

下载体验

请输入密码查看内容!

如何获取密码?

 

点击下载