#1 2023-11-24 02:21:54

marpolda
Endora uživatel
Místo: Ústí nad Labem
Registrován: 2015-05-04
Příspěvky: 106
Web

ChatGPT a rady k .htaccess

Zdravím. Před nějakou dobou jsem se ptal ChatGPT na rady ohledně přesměrování s překladem lomítek v URL adrese do query stringu a zpět, a napsalo mi to celkem uvěřitelné a uspokojivé informace, společně i s vysvětlením, jak to funguje. V dokumentaci Apache ty nejdůležitější aspekty nejsou, a zatím jsem neměl čas to pořádně prozkoušet na localhostu, což však udělám. Ale napsalo mi to verzi Apache 2.4.0, ve které by měly být takové funkce obsažené. Nicméně se chci zeptat, jaká verze Apache běží na Endoře (stačí verze typu 2.4, nemusí být třetí úroveň)? Případně jsou takové informace, co mi ChatGPT poskytlo, pravdivé? Může to fungovat?

Dosavadní konverzaci s ChatGPT si lze přečíst zde: https://chat.openai.com/share/7651a4b5- … 19c1b2d97f


Jen dvě věci na světě jsou nekonečné: Vesmír a lidská hloupost. U toho prvního si však nejsem jistý.
- Albert Einstein

Offline

#2 2023-11-24 02:23:14

marpolda
Endora uživatel
Místo: Ústí nad Labem
Registrován: 2015-05-04
Příspěvky: 106
Web

Re: ChatGPT a rady k .htaccess

Omylem jsem (asi chybou v prohlížeči) zduplikoval otázku, duplikát jsem smazal.


Jen dvě věci na světě jsou nekonečné: Vesmír a lidská hloupost. U toho prvního si však nejsem jistý.
- Albert Einstein

Offline

#3 2023-12-03 01:23:42

JF
Endora rádce
Místo: ....nice u Plzně
Registrován: 2010-06-22
Příspěvky: 11,888

Re: ChatGPT a rady k .htaccess

Dobrý den, na Endoře je dle PHPINFO Apache 2.0


Ján Fačkovec - Endora.cz by Webglobe
Email, Web, Webadmin, Webmail, Nápověda, Ceník

Offline

#4 2023-12-05 00:18:37

marpolda
Endora uživatel
Místo: Ústí nad Labem
Registrován: 2015-05-04
Příspěvky: 106
Web

Re: ChatGPT a rady k .htaccess

To asi zřejmě nebude fungovat. Podle návodu musí být verze Apache 2.4 nebo vyšší.

Note that you need to have the mod_rewrite module enabled in Apache for this to work, and that the QUERY_STRING_UNESCAPED variable is only available in Apache version 2.4.0 and later.

Ale jak tak koukám, tak stejně jsou tam podle všeho nesmysly. Po bližším prozkoumání jsou tam nepřesnosti. Nejsem si jistý, jestli je něco takového vůbec možné.

Upravil marpolda (2023-12-05 00:27:39)


Jen dvě věci na světě jsou nekonečné: Vesmír a lidská hloupost. U toho prvního si však nejsem jistý.
- Albert Einstein

Offline

#5 2023-12-09 19:10:24

JF
Endora rádce
Místo: ....nice u Plzně
Registrován: 2010-06-22
Příspěvky: 11,888

Re: ChatGPT a rady k .htaccess

Dobrý den, doporučuji dané zápisi otestovat. V případě že nebudou akceptované, stránka padne do chyby 500.


Ján Fačkovec - Endora.cz by Webglobe
Email, Web, Webadmin, Webmail, Nápověda, Ceník

Offline

#6 2024-03-03 12:14:28

marpolda
Endora uživatel
Místo: Ústí nad Labem
Registrován: 2015-05-04
Příspěvky: 106
Web

Re: ChatGPT a rady k .htaccess

Stránka do chyby 500 nespadla, ale nefunguje to podle představ.
6tPFyj7Du.png,

V path selectoru se má objevit "test". Vypadá to, že ChatGPT si trošku vymýšlí.

Zde je .htaccess soubor:

# No directory listing, no multi views
Options -Indexes

# Redirects and rewrites allowed
RewriteEngine on

# Redirect HTTP to HTTPS
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R,L]

# Redirect direct requests for "index.php?lang=xyz" to "/xyz/"
RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteCond %{QUERY_STRING} lang=([a-z]{2,3})
RewriteRule ^(index\.php)?$ https://%{HTTP_HOST}/%1/? [R=301,L]

# Redirect direct requests for "root.php?lang=xyz" to "/xyz/root/"
RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteCond %{QUERY_STRING} lang=([a-z]{2,3})
RewriteRule ^(root\.php)$ https://%{HTTP_HOST}/%1/root/? [R=301,L]

# Redirect direct requests for "root.php?lang=xyz&path=<anything>" to "/xyz/root/<anything>"
RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteCond %{QUERY_STRING} lang=([a-z]{2,3})
RewriteCond %{QUERY_STRING} path=(.+)
RewriteRule ^(root\.php)$ https://%{HTTP_HOST}/%1/root/%{QUERY_STRING_UNESCAPED:path}? [R=301,L,NE]

# Redirect direct requests for "root.php?path=<anything>" to "/root/<anything>"
RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteCond %{QUERY_STRING} path=(.+)
RewriteRule ^(root\.php)$ https://%{HTTP_HOST}/root/%{QUERY_STRING_UNESCAPED:path}? [R=301,L,NE]

# Redirect direct requests for "index.php" to "/"
RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteRule ^index\.php$ https://%{HTTP_HOST}/? [R=301,L]

# Redirect direct requests for "root.php" to "/root/"
RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteRule ^root\.php$ https://%{HTTP_HOST}/root/? [R=301,L]

# Redirect "/xyz/root" to "/xyz/root/" (with the slash at the end)
RewriteRule ^([a-z]{2,3})/root$ ./root/? [R=301,L]

# Internally rewrite "/xyz/root/" to "/root.php?lang=xyz"
RewriteRule ^([a-z]{2,3})/root/$ ./root.php?lang=$1 [L]

# Encode forward slashes in query string
#RewriteCond %{QUERY_STRING} ^(.*&|\?)path=([^&]*)(.*)$
#RewriteRule ^ - [E=PATH_ENCODED:${urlencoder:$2}]

# Internally rewrite "/xyz/root/<anything>" to "/root.php?lang=xyz&path=<anything>"
#RewriteRule ^([a-z]{2,3})/root/(.+)$ ./root.php?lang=$1&path=%{ENV:PATH_ENCODED}
RewriteRule ^([a-z]{2,3})/root/(.+)$ ./root.php?lang=$1&path=${urlencoder:$2} [B,L]

# Internally rewrite "/xyz/" or "/xyz/index/" to "/index.php?lang=xyz"
RewriteRule ^([a-z]{2,3})(/(index/?)?)?$ ./index.php?lang=$1 [L]

# Internally rewrite "/index/" to "/index.php"
RewriteRule ^index/?$ ./index.php [L]

# Internally rewrite "/root/" to "/root.php"
RewriteRule ^root/$ ./root.php [L]

# Encode forward slashes in query string
#RewriteCond %{QUERY_STRING} ^(.*&|\?)path=([^&]*)(.*)$
#RewriteRule ^ - [E=PATH_ENCODED:${urlencoder:$2}]

# Internally rewrite "/root/<anything>" to "/root.php?path=<anything>"
#RewriteRule ^root/(.+)$ ./root.php?path=%{ENV:PATH_ENCODED} [B,L]
RewriteRule ^root/(.+)$ ./root.php?path=${urlencoder:$2} [B,L]

Zde je soubor root.php:

<!DOCUMENT HTML>
<html>
    <head>
        <meta charset="utf-8" />
        <title>Hello World</title>
    </head>
    <body>
        <h1>Test: Hello World</h1>
        <ol>
            <li>Language selector: <?php echo $_GET['lang']; ?></li>
            <li>Path selector: <?php echo $_GET['path']; ?></li>
        </ol>
    </body>
</html>

Jen dodám, že czghost.test je moje lokální testovací doména, která není přístupná z jiného počítače.

Upravil marpolda (2024-03-03 12:15:26)


Jen dvě věci na světě jsou nekonečné: Vesmír a lidská hloupost. U toho prvního si však nejsem jistý.
- Albert Einstein

Offline

Zápatí

Založeno na FluxBB | CZ a SK