ugrás a tartalomhoz

mod_rewrite /page:1

Tanul0 · 2013. Feb. 4. (H), 16.49
Üdv!

Egy olyan problémába ütköztem, hogy erre az url-re: http://example.com/page:2 a következő hibaüzenetet kapom:

(20024)The given path is misformatted or contained invalid characters: Cannot map GET /page:2 HTTP/1.1 to file
Ugyanakkor erre az url-re tökéletesen működik: http://example.com/something/page:2

.htaccess :

# set the default language
DefaultLanguage hu-HU

# set the default character set
AddDefaultCharset UTF-8

Options +FollowSymLinks 
Options -Indexes
RewriteEngine on 
RewriteCond %{HTTP_HOST} ^www.example.com [NC] 
RewriteRule ^(.*)$ http://example.com/$1 [L,R=301]

<IfModule mod_rewrite.c>  
	AddOutputFilterByType DEFLATE text/css application/x-javascript image/jpg image/jpeg image/gif image/png

	RewriteEngine on   
	RewriteBase /
	RewriteCond %{REQUEST_FILENAME} !-f   
	RewriteCond %{REQUEST_FILENAME} !-d 
	RewriteRule ^(.*) index.php?$1 [QSA]   
</IfModule>

# enable MD5 digests via ContentDigest
ContentDigest On

<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/text text/html text/plain text/xml text/css application/x-javascript application/javascript image/jpg image/jpeg image/gif image/png
</IfModule>
Nem vagyok egy nagy RewriteRule író, ezért kérném a segítségeteket, hogy milyen szabállyal lehetne ezt a hibát kiküszöbölni.

Előre is köszi!
 
1

Kettőspont után a port jön.

hunkris · 2013. Feb. 4. (H), 18.38
Kettőspont után a port jön, szerintem az akasztja be a http szervert.
2

Én sem

Pepita · 2013. Feb. 4. (H), 19.48
vagyok egy nagy RewriteRule író
, úgyhogy tippeket tudok csak mondani.

- Ha a két URL közt tényleg csak annyi a különbség, hogy egyik műxik, másik nem, akkor én (is) arra gondolnék, hogy az első esetben portnak veszi a :2-őt, míg a másodikban már "van könyvtár" előtte.
- A RewriteBase /-t minden Rewrite elé célszerű tenni. (Akár legelső sorba.)
- Az első "Rewrite-olás" nincs kondícióban (<IfModule mod_rewrite.c>), ezért ha nincs betöltve a modul, helyből 500-as(?) errort kapsz.
- Kétszer kapcsolod be a modult (RewriteEngine on), ez felesleges.
- Speciális karaktereket ne használj URL-ben, ha lehet. Most is lehet, hogy csak a ":" etet meg, bár - szerintem - ez még lehetne. (Biztos, hogy URL végén portot jelöl? Nem csak IP végén?)
3

Nem, nem csak az IP végén.

hunkris · 2013. Feb. 4. (H), 19.59
Nem, nem csak az IP végén. URL -> dns szerver -> ip.
4

Vettem, köszi

Pepita · 2013. Feb. 4. (H), 20.01
Megjegyzem - ha tudom -, bár ilyen téren sajnos az eddig-jól-bevált-trükk módszerét szoktam alkalmazni... :)
6

De a / miatt már nem kéne

Tanul0 · 2013. Feb. 5. (K), 09.07
De a / miatt már nem kéne annak vennie - szerintem.
7

Nem értem, miért ne venné

hunkris · 2013. Feb. 5. (K), 19.15
Nem értem, miért ne venné annak? Más portokon üzemelő szolgáltatásoknak is lehet mappaszerkezete.
8

A port a tartománynevet

Joó Ádám · 2013. Feb. 6. (Sze), 00.33
A port a tartománynevet követi.
5

Valóban kicsit gányolt,

Tanul0 · 2013. Feb. 5. (K), 09.03
Valóban kicsit gányolt, rendbe szedem.
9

Frissítés

sandrosdj · 2013. Május. 15. (Sze), 17.20
Debian frissítés óta valami máshogy működik az apacs háza-táján.

Egy darab htaccess-ben szeretném alkalmazni a következő két dolgot:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^\.]+)$ $1.php [NC,L]


RewriteEngine on
RewriteBase /	
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^(.*) index.php/$1 [QSA]
Ha meglátogatom a /sajtoskenyer oldalt és van sajtoskenyer.php, akkor azt töltse be, ha pedig nincs, akkor az index.php/sajtoskenyer-t. A továbbiakban miként kivitelezhető ez? Eddig csak a második szabályt alkalmaztam, az első valahogy önmagától is működött úgy, hogy nem volt benne a htaccess fájlban.
10

Hanyas Apache verziod van?

charlie_hu · 2013. Jún. 14. (P), 14.20
Hanyas Apache verziod van?