การทำ Clean URL ใน Drupal
การทำ Clean URL หรือที่แปลแล้วว่า URL สะอาด ใน Drupal (ดูเป้า=>เพื่อนผมเรียกแบบนี้ตลอดเลย ไม่รู้จะดูอะไรกันนักกันหนา) เอามาจดไว้ที่นี่กันลืม หลังจากที่ลองมั่วมานาน
ให้ copy อันนี้เลยทั้งชุดไปไว้ใน ไฟล์ที่ชื่อว่า .htaccess ==> ไฟล์นี้ถ้าไม่มีเราก็สร้างขึ้นเอง แล้วเอาไปไว้ในที่ที่เราเก็บเวปเราน่ะแหละหรือ public_html หรือ httpdoc หรืออะไรแล้วแต่ host
# Apache/PHP/Drupal settings:
## Protect files and directories from prying eyes.
Order deny,allow
Deny from all# Set some options.
Options -Indexes
Options +FollowSymLinks# Customized error messages.
ErrorDocument 404 /index.php# Set the default handler.
DirectoryIndex index.php# Override PHP settings. More in sites/default/settings.php
# but the following cannot be changed at runtime.# PHP 4, Apache 1
php_value magic_quotes_gpc 0
php_value register_globals 0
php_value session.auto_start 0# PHP 4, Apache 2
php_value magic_quotes_gpc 0
php_value register_globals 0
php_value session.auto_start 0# PHP 5, Apache 1 and 2
php_value magic_quotes_gpc 0
php_value register_globals 0
php_value session.auto_start 0# Reduce the time dynamically generated pages are cache-able.
ExpiresByType text/html A1
# Various rewrite rules.
RewriteEngine on
# If your site can be accessed both with and without the prefix www.
# you can use one of the following settings to force user to use only one option:
#
# If you want the site to be accessed WITH the www. only, adapt and uncomment the following:
# RewriteCond %{HTTP_HOST} !^www\.example\.com$ [NC]
# RewriteRule .* http://www.example.com/ [L,R=301]
#
# If you want the site to be accessed only WITHOUT the www. , adapt and uncomment the following:
# RewriteCond %{HTTP_HOST} !^example\.com$ [NC]
# RewriteRule .* http://example.com/ [L,R=301]# Modify the RewriteBase if you are using Drupal in a subdirectory and
# the rewrite rules are not working properly.
RewriteBase /# Rewrite old-style URLs of the form ‘node.php?id=x’.
#RewriteCond %{REQUEST_FILENAME} !-f
#RewriteCond %{REQUEST_FILENAME} !-d
#RewriteCond %{QUERY_STRING} ^id=([^&]+)$
#RewriteRule node.php index.php?q=node/view/%1 [L]# Rewrite old-style URLs of the form ‘module.php?mod=x’.
#RewriteCond %{REQUEST_FILENAME} !-f
#RewriteCond %{REQUEST_FILENAME} !-d
#RewriteCond %{QUERY_STRING} ^mod=([^&]+)$
#RewriteRule module.php index.php?q=%1 [L]# Rewrite rules for static page caching provided by the Boost module
# BOOST STARTAddCharset utf-8 .html
RewriteCond %{REQUEST_URI} !^/cache
RewriteCond %{REQUEST_URI} !^/user/login
RewriteCond %{REQUEST_URI} !^/admin
RewriteCond %{HTTP_COOKIE} !DRUPAL_UID
RewriteCond %{REQUEST_METHOD} ^GET$
RewriteCond %{QUERY_STRING} ^$
RewriteCond %{DOCUMENT_ROOT}/cache/%{SERVER_NAME}/0/%{REQUEST_URI} -d
RewriteCond %{DOCUMENT_ROOT}/cache/%{SERVER_NAME}/0/%{REQUEST_URI}/index.html -f
RewriteRule ^(.*)$ cache/%{SERVER_NAME}/0/$1/index.html [L]
RewriteCond %{REQUEST_URI} !^/cache
RewriteCond %{REQUEST_URI} !^/user/login
RewriteCond %{REQUEST_URI} !^/admin
RewriteCond %{HTTP_COOKIE} !DRUPAL_UID
RewriteCond %{REQUEST_METHOD} ^GET$
RewriteCond %{QUERY_STRING} ^$
RewriteCond %{DOCUMENT_ROOT}/cache/%{SERVER_NAME}/0/%{REQUEST_URI}.html -f
RewriteRule ^(.*)$ cache/%{SERVER_NAME}/0/$1.html [L]
# BOOST END# Rewrite current-style URLs of the form ‘index.php?q=x’.
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]# $Id: boosted.txt,v 1.4 2006/12/05 10:39:19 arto Exp $
** หมายเหตุ ถ้าหากว่า ดูเป้าเราไม่ได้อยู่ที่ root ก็คือมันอยู่ใน sub directory นั่นแหละ ก็ให้แก้ตรงบรรทัดที่เป็น
RewriteBase / ให้เป็น RewriteBase /example => ในกรณีที่อยู่ในโฟลเดอร์ชื่อ example
ที่มาหาได้จาก http://drupal.org/node/121834
Filed under: Drupal | Leave a Comment
Tags: cms, Drupal, tip



No Responses Yet to “การทำ Clean URL ใน Drupal”