Reputation: 13
Settings in httpd.conf is correct for .htaccess
Here is the content of .htaccess:
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_URI} ^Minecraft(Skin|Cloak)s/
RewriteRule ^Minecraft(Skins|Cloaks)/([a-zA-Z_0-9]+)(?:.*) /$1/$2.png
which I expected to get this result:
Input: /MinecraftSkins/u5er_n4me-skin-317982479812
Output: /Skins/u5er_n4me.png
Input: /MinecraftCloaks/u5er_n4me-cape-317982479812
Output: /Cloaks/u5er_n4me.png
But Nothing was happened, only a 404 returned and no rewrite working.
Is my Regexp wrong?
Log: [Mon Sep 08 17:39:30.089346 2014] [rewrite:trace2] [pid 5212:tid 1108] mod_rewrite.c(468): [client 192.168.1.1:57989] 192.168.1.1 - - [skins.jsw3286.info/sid#27866e0][rid#27dc240/initial] init rewrite engine with requested uri /MinecraftSkins/jsw-18947
[Mon Sep 08 17:39:30.089346 2014] [rewrite:trace1] [pid 5212:tid 1108] mod_rewrite.c(468): [client 192.168.1.1:57989] 192.168.1.1 - - [skins.jsw3286.info/sid#27866e0][rid#27dc240/initial] pass through /MinecraftSkins/jsw-18947
[Mon Sep 08 17:39:30.090346 2014] [rewrite:trace3] [pid 5212:tid 1108] mod_rewrite.c(468): [client 192.168.1.1:57989] 192.168.1.1 - - [skins.jsw3286.info/sid#27866e0][rid#27dc240/initial] [perdir F:/mcsrv/SkinStation/root/] strip per-dir prefix: F:/mcsrv/SkinStation/root/MinecraftSkins/jsw-18947 -> MinecraftSkins/jsw-18947
[Mon Sep 08 17:39:30.090346 2014] [rewrite:trace3] [pid 5212:tid 1108] mod_rewrite.c(468): [client 192.168.1.1:57989] 192.168.1.1 - - [skins.jsw3286.info/sid#27866e0][rid#27dc240/initial] [perdir F:/mcsrv/SkinStation/root/] applying pattern '^Minecraft(Skins|Cloaks)/([a-zA-Z_0-9]+)(?:.*)' to uri 'MinecraftSkins/jsw-18947'
[Mon Sep 08 17:39:30.090346 2014] [rewrite:trace1] [pid 5212:tid 1108] mod_rewrite.c(468): [client 192.168.1.1:57989] 192.168.1.1 - - [skins.jsw3286.info/sid#27866e0][rid#27dc240/initial] [perdir F:/mcsrv/SkinStation/root/] pass through F:/mcsrv/SkinStation/root/MinecraftSkins/jsw-18947
And then 404 is presented.
Upvotes: 1
Views: 113
Reputation: 19026
Your RewriteCond
does not pass because REQUEST_URI
begins with a leading slash (/
).
Also, your RewriteCond
is useless in your case so you can remove it.
Use this code instead
RewriteEngine On
RewriteBase /
RewriteCond %{DOCUMENT_ROOT}/$1/$2\.png !-f
RewriteRule ^Minecraft(Skins|Cloaks)/([a-zA-Z_0-9]+) http://skins.minecraft.net/Minecraf$1/$2.png [R=301,L]
RewriteRule ^Minecraft(Skins|Cloaks)/([a-zA-Z_0-9]+) $1/$2.png [L]
Upvotes: 1