Autor | Zpráva | ||
---|---|---|---|
Manny Profil * |
Asi triviální problém. Nefunguje mi přepis url.
mod_rewrite v podobě: RewriteEngine on RewriteBase / RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^([^/.]+)/?$ ?str=$1 [L,QSA] url v podobě: http://www.inverso.cz/index.php?str=uvod Můžete mi někdo pomoct. Moc to zatim nechápu. |
||
Davex Profil |
#2 · Zasláno: 7. 11. 2009, 17:38:53
Jsou splněny všechny podmínky pro práci s mod_rewrite?
|
||
Manny Profil * |
#3 · Zasláno: 7. 11. 2009, 19:38:00
Davex:
Já myslím, že jo. Třeba .htacces na chybovku 404 mi funguje. |
||
Kajman_ Profil * |
#4 · Zasláno: 7. 11. 2009, 22:43:57
Pro test, jestli to máte vše potřebné zapnuté a povolené, zkuste ten první příklad
http://diskuse.jakpsatweb.cz/?action=vthread&forum=31&topic=97298#1 |
||
Manny Profil * |
#5 · Zasláno: 8. 11. 2009, 19:48:21
Test jsem vyzkoušel a přesměrování funguje. Už nevím.
|
||
Manny Profil * |
#6 · Zasláno: 8. 11. 2009, 20:37:13
Napadlo mě, jestli není problém v tom, že index.php a ostatní jsou na hostingu vnořeny ještě do adresáře www.
|
||
Časová prodleva: 3 dny
|
|||
Kajman_ Profil * |
#7 · Zasláno: 11. 11. 2009, 09:09:59
Nepomůže zmínit přímo název souboru?
RewriteEngine on RewriteBase / RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^([^/.]+)/?$ index.php?str=$1 [L,QSA] Jestli ne, tak bych zkusil ještě přidat úvodní lomítko. |
||
Mannny Profil * |
#8 · Zasláno: 12. 11. 2009, 06:59:06
Aúúú, nefunguje. Ani s lomítkem před index.php.:-(((
|
||
Kajman_ Profil * |
#9 · Zasláno: 12. 11. 2009, 09:29:17
Myslel jsem jiné lomítko...
RewriteEngine on RewriteBase / RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^/?([^/.]+)/?$ index.php?str=$1 [L,QSA] |
||
Manny Profil * |
#10 · Zasláno: 12. 11. 2009, 14:42:56
ne, ne a ne. Asi to tak nechám. Díky za snahu.
|
||
Davex Profil |
#11 · Zasláno: 14. 11. 2009, 13:50:11
Pokud je skript index.php v podadresáři www (jeho kompletní URL je "http://www.example.com/www/index.php"), tak bude nutné změnit
RewriteBase /www/ |
||
Manny Profil * |
#12 · Zasláno: 14. 11. 2009, 17:52:52
To už mě taky napadlo, ale pořád nic.
|
||
Davex Profil |
#13 · Zasláno: 14. 11. 2009, 18:13:41
Ještě se hloupě zeptám - je zapnuto FollowSymlinks? Kajmanův zápis určitě funguje - nejsou tam ještě nějaká další pravidla se kterými by to mohlo kolidovat?
|
||
Manny Profil * |
#14 · Zasláno: 14. 11. 2009, 18:28:41
Nevím co je FollowSymlinks, zase tak se v tom nevyznám. Ale v rootu webu, kde je adresář www se všemi soubory je tenhle .htacces
Options -Indexes ErrorDocument 404 http://404.kapusta.cz ErrorDocument 403 http://403.kapusta.cz php_value memory_limit 32M php_value post_max_size 32M php_value upload_max_filesize 32M php_value post_max_size 32M Což by nemělo ničemu vadit (myslím) Další pravidla tam nejsou. |
||
Davex Profil |
#15 · Zasláno: 14. 11. 2009, 20:10:30
„Nevím co je FollowSymlinks“
To je ale chyba - přečti si odkaz v mém prvním příspěvku [#2]. |
||
Manny Profil * |
#16 · Zasláno: 14. 11. 2009, 22:07:12
Celé to vypadá teda takhle:
Options +FollowSymlinks RewriteEngine on RewriteBase /www/ RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^/?([^/.]+)/?$ index.php?str=$1 [L,QSA] Jenže pořád nic. |
||
Davex Profil |
#17 · Zasláno: 15. 11. 2009, 00:12:50
A s tímto?
RewriteBase / |
||
Manny Profil * |
#18 · Zasláno: 15. 11. 2009, 13:39:19
Ne! Ani s www/ ani bez. To přece není možný.
|
||
Davex Profil |
#19 · Zasláno: 15. 11. 2009, 14:05:02 · Upravil/a: Davex
Teď už nevím, v čem by mohl být problém. Pro otestování vyzkoušej tuto minimalizovanou variantu:
Options +FollowSymlinks RewriteEngine on RewriteBase / RewriteCond %{ENV:REDIRECT_STATUS} ="" RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ index.php?str=$1 [L,QSA] Případně potom ještě bez podmínky RewriteCond. edit: Dopsal jsem ještě první podmínku RewriteCond, aby se to nezacyklilo. |
||
Manny Profil * |
#20 · Zasláno: 15. 11. 2009, 14:15:03
Bez RewriteCond mi to vypíná css.
|
||
Davex Profil |
#21 · Zasláno: 15. 11. 2009, 14:38:59
Já vím, cílem je dopracovat se k problematickému řádku.
|
||
Manny Profil * |
#22 · Zasláno: 15. 11. 2009, 14:50:09
S tou další podmínkou se nic neděje.
|
||
Davex Profil |
#23 · Zasláno: 15. 11. 2009, 15:08:23
Teď už to ale funguje: http://www.inverso.cz/uvod
|
||
Manny Profil * |
#24 · Zasláno: 15. 11. 2009, 15:21:35
No tento odkaz ano. Ale další stránky jsou pořád s paramtrem str.
|
||
Davex Profil |
#25 · Zasláno: 15. 11. 2009, 17:23:43
Pokud ručně upravím URL, tak mi kromě "komiksy" fungují všechny odkazy z hlavního menu. Přepis komiksů nefunguje kvůli tomu, že tam je adresář se stejným jménem - to by měla vyřešit změna nastavení doplňování lomítka a kontrola existence adresáře
Options +FollowSymlinks DirectorySlash Off RewriteEngine on RewriteBase / RewriteCond %{ENV:REDIRECT_STATUS} ="" RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ index.php?str=$1 [L,QSA] |
||
Manny Profil * |
#26 · Zasláno: 15. 11. 2009, 20:03:30
Ano, "ruční" úprava funguje, ale já jsem chtěl, aby se to v adresním řádku zobrazovalo tzv. "seo friendly" automaticky.
|
||
Davex Profil |
#27 · Zasláno: 15. 11. 2009, 22:48:49
Mod_rewrite nepřepisuje odkazy na stránce - odkazy se musí změnit ve skriptu, který generuje stránky.
|
||
Mannny Profil * |
#28 · Zasláno: 16. 11. 2009, 14:22:24
Možná jsme si nerozuměli. Chtěl jsem url ve formátu:
http://www.inverso.cz/uvod a ne http://www.inverso/index.php?str=uvod |
||
Davex Profil |
#29 · Zasláno: 16. 11. 2009, 15:31:43
Mannny:
„Chtěl jsem url ve formátu“ Kde? V odkazech na stránce nebo jinde? Aby to celé správně fungovalo tak je potřeba: 1. změnit vytváření odkazů na novou podobu ve skriptu, který generuje stránky 2. nastavit podstrkávání z nové podoby (virtuálního) URL na zpracovávající skript (to už máš) 3. nastavit přesměrování ze starých URL na nová HTTP statusem 301, aby lidé přicházející přes externí odkazy neskončili ve slepé uličce |
||
Manny Profil * |
#30 · Zasláno: 16. 11. 2009, 16:41:41
Stačí mi to v adresním řádku.
|
||
Časová prodleva: 14 let
|
0