Dobrý den, potřebovala bych poradit, jak mít čistou url, konkrétně docela drsně laický dotaz, kde se nachází adresář drupalu a kde si mohu změnit rewrite. Čistá url mi nelze povolit, ale server to podporuje.
Jsem opravdový laik a tak prosím o pochopení a jednoduchý návod.
Díky moc
- Pro možnost psaní komentářů se přihlašte nebo zaregistrujte.



To se opravdu těžko
To se opravdu těžko vysvětluje laikovi. Pěkný článek vyšel na Drupal.cz http://www.drupal.cz/clanky/pro-webmastery/drupal-a-seo-II-cista-url Odporučuji Vám jej přečíst.
Čisté URL si nastavíte v administraci -> nastavení webu -> čistá url (admin/settings/clean-urls).
Je potřeba mít zapnutý modul Path (administrace - prvky webu - moduly), a možnost Mod_rewrite na serveru, dobré je mít modul Pathauto abyste nemusela pokaždé zadávat čistou URL.
Uvažte zda je pro Vás výhodné měnit něco tak zásadního na rozběhlém webu. Mohou nastat potíže s kterými si nebudete vědět rady, např. Vám přestanou jet stará URL. Záleží jakou máte verzi Drupalu, tohle není věc Ubercartu, i když nějaký problém ohledně clean urls jsem při jeho instalaci myslím zaznamenal taky, bohužel si jej nepamatuji.
Podle mě už navíc nějaký název URL v dnešní době nehraje pro vyhledávače moc velkou roli. Alespoň se stránky načítají rychleji, takže jde spíš jen o to že uživatelům by se url více líbilo a lépe by si jej zapamatovali - samozřejmě pokud byl název krátký.
Pokud Vám návod nepomůže, napište zde prosím jakou verzi Drupalu používáte a jakou Vám systém hlásí chybu. Pokud se ale budete držet uvedených instrukcí, neměl by být problém. Pro laika to bude ale velký oříšek.
stejny problem
Take hostuji na serveru onebit.cz, a bohuzel se mi tento problem jeste nepodarilo vyresit. Kazdopadne standardni dodavane .htaccess nefunguje, bude jej potreba nejak poupravit. Jeste se tim budu zabyvat, takze kdybych to vyresil, dam vedet. Ale kdyby vedel nekdo jiny uz ted, tak bych se nezlobil :-)
Martin
Standardni .htaccess by měl
Standardni .htaccess by měl fungovat, pokud je server správně nastaven. Pochybuji o tom, že budou potřeba nějaké speciální úpravy. Máte v administraci aktivovanou službu mod_rewrite? Píše se o tom v programu hostingu. Ještě se s tím poperte, ael úpravou souboru .htaccess se zabývat podle mě opravdu nemusíte. Pokud je vše správně nastaveno na serveru, mělo by vše fungovat.
Btw používám webhosting Igloonet a jsem s ním nad míru spokojený. Pro Drupal ideální, běží mi na tom několik Drupal webů a je tam více než kvalitní podpora. Samozřejmě existuje více takových, ale chtěl jsem se jen podělit o své zkušenosti ;)
onebit.cz - vyreseno
Zdravim,
tak jsem to dneska vyresil formou pokus - omyl. Vsechno funguje vyborne, jen je potreba zakomentovat par veci.
Soubory jsou z Drupalu 5.12, takze by melo stacit pro verzi 6.x jen drobne poupravit.
Zakomentovane radky pomoci '###' znamenaji, ze tyto prikazy jsou na tomto serveru povolene.
1) Hlavni .htaccess:
# Protect files and directories from prying eyes.
<FilesMatch "\.(engine|inc|info|install|module|profile|po|sh|.*sql|theme|tpl(\.php)?|xtmpl)$|^(code-style\.pl|Entries.*|Repository|Root|Tag|Template)$">
Order allow,deny
</FilesMatch>
# Don't show directory listings for URLs which map to a directory.
###Options -Indexes
# Follow symbolic links in this directory.
###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.
###<IfModule mod_php4.c>
### php_value magic_quotes_gpc 0
### php_value register_globals 0
### php_value session.auto_start 0
### php_value mbstring.http_input pass
### php_value mbstring.http_output pass
### php_value mbstring.encoding_translation 0
###</IfModule>
# PHP 4, Apache 2.
###<IfModule sapi_apache2.c>
### php_value magic_quotes_gpc 0
### php_value register_globals 0
### php_value session.auto_start 0
### php_value mbstring.http_input pass
### php_value mbstring.http_output pass
### php_value mbstring.encoding_translation 0
###</IfModule>
# PHP 5, Apache 1 and 2.
###<IfModule mod_php5.c>
### php_value magic_quotes_gpc 0
### php_value register_globals 0
### php_value session.auto_start 0
### php_value mbstring.http_input pass
### php_value mbstring.http_output pass
### php_value mbstring.encoding_translation 0
###</IfModule>
# Requires mod_expires to be enabled.
<IfModule mod_expires.c>
# Enable expirations.
ExpiresActive On
# Cache all files for 2 weeks after access (A).
ExpiresDefault A1209600
# Do not cache dynamically generated pages.
ExpiresByType text/html A1
</IfModule>
# Various rewrite rules.
<IfModule mod_rewrite.c>
RewriteEngine on
# If your site can be accessed both with and without the 'www.' prefix, you
# can use one of the following settings to redirect users to your preferred
# URL, either WITH or WITHOUT the 'www.' prefix. Choose ONLY one option:
#
# To redirect all users to access the site WITH the 'www.' prefix,
# (http://example.com/... will be redirected to http://www.example.com/...)
# adapt and uncomment the following:
RewriteCond %{HTTP_HOST} ^example\.com$ [NC]
RewriteRule ^(.*)$ http://www.example.com/$1 [L,R=301]
#
# To redirect all users to access the site WITHOUT the 'www.' prefix,
# (http://www.example.com/... will be redirected to http://example.com/...)
# uncomment and adapt the following:
# RewriteCond %{HTTP_HOST} ^www\.example\.com$ [NC]
# RewriteRule ^(.*)$ http://example.com/$1 [L,R=301]
# Modify the RewriteBase if you are using Drupal in a subdirectory or in a
# VirtualDocumentRoot and the rewrite rules are not working properly.
# For example if your site is at http://example.com/drupal uncomment and
# modify the following line:
# RewriteBase /drupal
#
# If your site is running in a VirtualDocumentRoot at http://example.com/,
# uncomment the following line:
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 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]
</IfModule>
2) .htaccess v podadresarich files, images, tmp, atd.
SetHandler Drupal_Security_Do_Not_Remove_See_SA_2006_006
###Options None
###Options +FollowSymLinks
Jen bych se bál, že řešení
Jen bych se bál, že řešení "pokus omyl" nebude moc šťastnou volbou pro nasazení v ostrém provozu. Chápu že jsi rád že ti to funguje, ale ještě bych si pro jistotu zjistil co jednotlivé řádky znamenají a hlavně - prošel access log - jaké ty chyby to vlastně háže.
je to OK
To jsem psal samozrejme trochu nadnesene :-) Vim, co jednotlive radky znamenaji. Proste jsem si touto metodou jen potvrdil to, ze maji zakazane volby 'php_value', protoze tyto se nastavuji pres administraci a 'Options', ktere dane a menit nejdou.
Takze se neni treba ostreho nasazeni bat!