/ / .htaccess prepíše zmeny URL chyby - .htaccess, mod-rewrite

.htaccess prepísať zmeny chýb url - .htaccess, mod-rewrite

Vo svojom .htaccess som urobil nejaké presmerovacie veci a funguje to dobre.

RewriteEngine On
# add www. if missing
RewriteCond %{HTTP_HOST} !^www.example.com$ [NC]
RewriteRule ^(.*)$ http://www.example.com/$1 [R=301,L]
# redirect index.html and index.php to the simple homepage
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9} /index.php|/index.html HTTP/
RewriteRule ^index.php$|^index.html$ http://www.example.com/ [R=301,L]
# add trailing slash if missing
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^.*[^/]$ /$0/ [L,R=301]
# redirect simulated directories to php files of the same name in /content/
RewriteCond %{REQUEST_URI} !^(/css|/images) [NC]
RewriteRule ^([^/]+)/$ content/$1.php?rw=1 [QSA,L]
RewriteCond %{QUERY_STRING} !^rw=1
RewriteRule ^content/([^/]+).php$ /$1/ [R=301,L]

Ale časť, ktorá pridáva koncové lomky, jeAk je povolená adresa URL, vyskytuje sa zvláštny problém, ktorý neexistuje a ktorý je nasmerovaný na moju chybovú stránku 404: Ak napríklad zadám adresu www.priklad.sk/prijem/, adresa URL sa zmení na adresu www.priklad.sk/obsah/prijem.php/?rw=1 Toto sa nestane, keď deaktivujem časť pre koncové lomky alebo časť pre simulované adresáre v htaccess. Ale chcem si nechať obidve. Existuje možnosť?

odpovede:

0 pre odpoveď č. 1

Vyzerá to, že môžete svoj problém úplne ľahko opraviťproblém pridaním ďalšej podmienky do presmerovania „lomka“. Zdá sa, že nemáte žiadne adresy URL, ktoré končia na .php, takže môžete skontrolovať, či vaše adresy URL už nekončia. Ak to tak nie je, môžete pridať lomku.

RewriteEngine On

# add www. if missing
RewriteCond %{HTTP_HOST} !^www.example.com$ [NC]
RewriteRule ^(.*)$ http://www.example.com/$1 [R=301,L]

# redirect index.html and index.php to the simple homepage
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9} /index.php|/index.html HTTP/
RewriteRule ^index.php$|^index.html$ http://www.example.com/ [R=301,L]

# add trailing slash if missing
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !.php$
RewriteRule ^.*[^/]$ /$0/ [L,R=301]

# redirect simulated directories to php files of the same name in /content/
RewriteCond %{REQUEST_URI} !^(/css|/images) [NC]
RewriteRule ^([^/]+)/$ content/$1.php?rw=1 [QSA,L]

RewriteCond %{QUERY_STRING} !^rw=1
RewriteRule ^content/([^/]+).php$ /$1/ [R=301,L]