Autor Zpráva
martin weis
Profil *
Dobrý den,
chtěl jsem docílit přívětivé adresy a ve Wordpressu jsem si nastavil trvalé odkazy tak aby se mi místo adresy nějaké podstránky např. http://www.pocitace-pcservis.cz/?p=123 zobrazovala http://www.pocitace-pcservis/archives/123, ve chvíli kdy uložím změnu mi stránka mi hodí například po poklikaní na kontakty adresu http://www.pocitace-pcservis.cz/kontakty avšak s chybou 404. Nevímjestli je třeba vytvořit html verzi těch stránek a jak to tedy v takovém případě provést.

Protože jsem laik přestal jsem se touto možností zabývat a našel jsem na webu že lepší mít virtualní html adresy a k tomu jsem nakonfiguroval htaccess zatim jsem tam dal pouze pravidlo na kontakty:
RewriteEngine on
RewriteCond %{HTTP_HOST} ^pocitace-pcservis\.cz
RewriteRule ^kontakty(.*)\.html$ http://www.pocitace-pcservis.cz/?page_id=17 [L,QSA]

Pokud někdo požaduje stránku s kontakty.html má ho to přesměrovat na adresu se skutečným článkem ale to nefunguje, opět chyba 404.
A navíc, poradil by mi někdo jak zajistit že návštěvník klikne z hlavní stránky pouze na odkaz kontakty aniž by celou adresu zadával a to ho poté automaticky hodí na adresu s článkem a v adresním řádku bude přívětivá adresa http://www.pocitace-pcservis.cz/kontakty ? Tuto volbu bych samozřejmě potom aplikoval i na všechny zbývající podstránky.
Děkuji za jákékoliv rady.
Davex
Profil
Wordpress moc neznám, ale nejde v něm zapnout Cool URI nebo neexistuje do něj nějaký plugin, který by to komplexně řešil?
martin weis
Profil *
Davex:
Stáhnul jsem a nainstaloval jsem /http://www.deanlee.cn/wordpress/permalinks-migration-plugin/ ale po aktivaci pluginy žádná změna.
Když změním trvalé odkazy na jinou třeba číselnou strukturu dokonce i když nastavím vlastní strukturu třeba /%category%/%postname%/, v adrese se si sice už objeví přátelská adresa končící na kontakty ale hodí chybu 404.
Davex
Profil
martin weis:
Takže jinými slovy nefungují žádná pravidla mod_rewrite? Zkus test funkčnosti mod_rewrite, případně s přidanou konfigurační volbou:

Options +FollowSymLinks


Pokud je mod_rewrite funkční, tak by se měla pravidla nastavit podle dokumentace Wordpressu pro použití Cool URI.
Martin Weis
Profil
Davex:
Davex:
Options +FollowSymLinks
V dokumentaci jsem nalezl:
In all three of these directories AND in the root directory, at the top of ALL of the .htaccess files you
simply need to add one line:

Options +FollowSymlinks

ale také jsem nalezl

If the AllowOverride directive is set to None in your

Apache httpd.config file, then .htaccess files are

completely ignored. In this case, the server will not even

attempt to read .htaccess files in the filesystem. When this

directive is set to All, then any directive which has the

.htaccess Context is allowed in .htaccess files. Example of

enabled AllowOverride directive in httpd.config:
<Directory />
Options FollowSymLinks
AllowOverride All
</Directory>

Kde tedy tato volba má být nastavena , jednou se zmiňuje ve

všech souborech htaccess a jednou v httpd.config

Pokud je mod_rewrite funkční, tak by se měla pravidla nastavit podle dokumentace Wordpressu pro použití Cool URI.


Dále bylo v dokumentaci uvedeno že v případě problémů se má

zkusit nahradit: $is_apache = strstr($_SERVER

['SERVER_SOFTWARE'], 'Apache') ? 1 : 0; tímto //

$is_apache = strstr($_SERVER['SERVER_SOFTWARE'], 'Apache') ?

1 : 0; a pod toto vložit nový řádek s $is_apache = 1; ale

nemůžu tam tu položku najít a nejpodobnější položku kterou

jsme nalezl ve vcars.php je $is_apache = (strpos($_SERVER

['SERVER_SOFTWARE'], 'Apache') !== false mám tedy zkusit

tuto položku?

Uvedený zápis htaccess jsem pak zkoušel ve formě: RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
a nikoliv v té kterou uváděl na začátka vlákna protože ta je pro tento účel nejspíš nevhodná, nicméně přívětivé adresy stejně nefungují.
Davex
Profil
Je potřeba jasně specifikovat místo problému.

1) Nefunguje žádné nastavení v souboru .htaccess - ignoruje se?
→ v konfiguraci Apache se musí v části <Directory /var/www/nebo_cesta_ke_koreni_webu> (cesta se může lišit podle použitého operačního systému) zapnout AllowOverride All.

2) Různá nastavení v souboru .htaccess fungují, ale pravidla mod_rewrite nikoliv?
→ je potřeba povolit modul mod_rewrite (záleží na použítém operačním systému a umístění konfiguračních souborů)
→ v části <Directory /var/www/nebo_cesta_ke_koreni_webu> konfiguračního souboru nebo v souboru .htaccess musí být zapnuto Options +FollowSymLinks

Pokud jsou pravidla funkční, tak musí být zároveň zapnuto Cool URI v konfiguraci Wordpressu, aby se vytvářely správně odkazy.

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: