WordPress .htaccess నియమాలకు మినహాయింపులు కూడా ఉన్నాయి
బ్లాగు ప్లాట్ఫామ్లో బ్లాగు ఒక పెద్ద పరిణామ దశను ముందుకు తెచ్చి, పునర్విమర్శ ట్రాకింగ్, కస్టమ్ మెనూలకు ఎక్కువ మద్దతు, మరియు డొమైన్ మ్యాపింగ్తో నాకు బహుళ-సైట్ మద్దతుతో పూర్తి స్థాయి కంటెంట్ మేనేజ్మెంట్ సిస్టమ్కు దగ్గరగా ఉంది.
మీరు కంటెంట్ మేనేజ్మెంట్ సిస్టమ్ జంకీ కాకపోతే, ఫర్వాలేదు. మీరు ఈ కథనాన్ని దాటవేయవచ్చు. కానీ నా తోటి టెక్నో-గీక్లు, కోడ్-హెడ్లు మరియు అపాచీ-డాబ్లర్ల కోసం, నేను ఆసక్తికరమైన మరియు మంచిదాన్ని పంచుకోవాలనుకుంటున్నాను.
బహుళ-సైట్ అనేది ఒకే WordPress ఇన్స్టాలేషన్తో ఎన్ని WordPress వెబ్సైట్లనైనా అమలు చేయడానికి మిమ్మల్ని అనుమతించే లక్షణం. మీరు బహుళ సైట్లను నిర్వహించినట్లయితే, మీరు ఆమోదించబడిన థీమ్లు మరియు విడ్జెట్ల సమూహాన్ని ఇన్స్టాల్ చేయవచ్చు మరియు మీ క్లయింట్ సైట్ల కోసం వాటిని సక్రియం చేయవచ్చు కనుక ఇది చాలా బాగుంది. మీ డొమైన్లను మ్యాపింగ్ చేయడానికి కొన్ని సాంకేతిక అడ్డంకులు ఉన్నాయి, కానీ ప్రక్రియ కష్టం కాదు.
నేను గుర్తించిన సమస్య ప్రాంతాలలో ఒకటి థీమ్ అనుకూలీకరణ. అనేక వెబ్సైట్లకు థీమ్లను అందుబాటులో ఉంచవచ్చు కాబట్టి, మీరు ఒక థీమ్కు చేసే ఏవైనా అనుకూలీకరణలు మీ బహుళ-సైట్ ఇన్స్టాల్లో ఆ థీమ్ను ఉపయోగించే ఇతర సైట్లను కూడా ప్రభావితం చేస్తాయి. నేను అనుకూలీకరించడం ప్రారంభించే ముందు థీమ్ను నకిలీ చేయడం మరియు నేను దానిని స్టైల్ చేస్తున్న క్లయింట్ సైట్కి స్పష్టంగా పేరు పెట్టడం నా మార్గం.
ఇందులో ఏం జరుగుతుందనేది మరో ఆసక్తికరమైన అంశం .htaccess మీ Apache సర్వర్లో ఫైల్. WordPress బ్లాగ్-వారీ-బ్లాగ్ ప్రాతిపదికన పాత్లను తిరిగి వ్రాయాలి మరియు దీన్ని మళ్లీ వ్రాయడం నియమం మరియు ఒక php దాఖలు.
WordPress కింది తిరిగి వ్రాసే నియమాన్ని ఉపయోగిస్తుంది:
RewriteRule ^([_0-9a-zA-Z-]+/)?files/(.+) wp-includes/ms-files.php?file=$2 [L]
విచ్ఛిన్నమైంది, దీని అర్థం:
RewriteRule
– ఈ ఆదేశం అపాచీకి ఇది తిరిగి వ్రాసే నియమం అని చెబుతుంది.^([_0-9a-zA-Z-]+/)?
– ఇది సాధారణ వ్యక్తీకరణ (RegEx) ఇది ఆల్ఫాన్యూమరిక్ అక్షరాలు మరియు హైఫన్ల ఐచ్ఛిక స్ట్రింగ్తో ప్రారంభమయ్యే అక్షరాల స్ట్రింగ్తో సరిపోలుతుంది. కుండలీకరణాలు సంగ్రహ సమూహాన్ని సూచిస్తాయి, అంటే సరిపోలిన వచనాన్ని భర్తీ స్ట్రింగ్లో ఉపయోగించవచ్చు.files/
– ఇది స్ట్రింగ్ “ఫైల్స్/”తో సరిపోలుతుంది.(.+)
- ఇది ఒకటి లేదా అంతకంటే ఎక్కువ సార్లు ఏదైనా అక్షరాల స్ట్రింగ్తో సరిపోలే మరొక క్యాప్చర్ గ్రూప్.wp-includes/ms-files.php?file=$2
– ఇది సరిపోలిన స్ట్రింగ్ను భర్తీ చేసే రీప్లేస్మెంట్ స్ట్రింగ్. ఇది అపాచీకి అభ్యర్థనను "wp-includes/ms-files.php"కి దారి మళ్లించమని చెబుతుంది, రెండవ క్యాప్చర్ గ్రూప్ ($2) విలువతో "ఫైల్" అనే ప్రశ్న పరామితిగా ఉంటుంది.[L]
– ఈ నియమం సరిపోలితే తదుపరి నిబంధనలను ప్రాసెస్ చేయడాన్ని ఆపివేయమని అపాచీకి చెప్పే ఫ్లాగ్ ఇది.
ముఖ్యంగా, mysite.com/files/directory యొక్క ఉప డైరెక్టరీలో ఉన్న ఏదైనా mysite.com/files/wp-includes/myblogfolderpath… కు తిరిగి వ్రాయబడుతుంది మరియు ఇది ఆసక్తికరంగా ఉంటుంది. మీరు నిజంగా మీ సర్వర్లో mysite.com/files/myfolder/myimage.jpg అనే ఫైల్ను కలిగి ఉంటే ఏమి జరుగుతుంది? మీకు 404 లోపం వస్తుంది, అదే జరుగుతుంది. అపాచీ తిరిగి వ్రాసే నియమం ప్రారంభమవుతుంది మరియు మార్గాన్ని మారుస్తుంది.
నిజమే, మీరు ఈ సమస్యను ఎప్పటికీ చూడలేరు, కానీ నేను చేసాను. నేను మరొక వెబ్సైట్ నుండి జావాస్క్రిప్ట్ విడ్జెట్ను ఉపయోగించాల్సిన సైట్ను కలిగి ఉన్నాను మరియు దీనికి mysite.com/files/Images/myfile వద్ద గ్రాఫిక్స్ కనుగొనడం అవసరం. హోస్ట్ సైట్లో ఫైల్ను మార్చడానికి మార్గం లేనందున, నా సర్వర్లో దీన్ని చేయడానికి ఒక మార్గాన్ని గుర్తించాల్సిన అవసరం ఉంది. నిర్దిష్ట ఫైళ్ళకు మినహాయింపునిచ్చే తిరిగి వ్రాసే పరిస్థితిని సృష్టించడం సులభమైన పరిష్కారం.
ఇక్కడ పరిష్కారం:
RewriteCond %{REQUEST_URI} !/?files/Image/file1.jpg$
RewriteCond %{REQUEST_URI} !/?files/Image/file2.jpg$
RewriteRule ^([_0-9a-zA-Z-]+/)?files/(.+) wp-includes/ms-files.php?file=$2 [L]
పగిలి పోయిన:
లైన్ 1:
RewriteCond
– ఇది రీరైట్కాండ్ నియమం అని ఈ ఆదేశం అపాచీకి చెబుతుంది.%{REQUEST_URI}
– ఇది అభ్యర్థించిన URI యొక్క పాత్ను కలిగి ఉన్న సర్వర్ వేరియబుల్.!
– ఇది నెగెషన్ ఆపరేటర్ అంటే “కాదు”. పరిస్థితిని తారుమారు చేయడానికి ఇది ఉపయోగించబడుతుంది./?files/Image/file1.jpg$
– ఇది అభ్యర్థించిన URI చివరిలో ఖచ్చితమైన స్ట్రింగ్ “/files/Image/file1.jpg”కి సరిపోలే సాధారణ వ్యక్తీకరణ. "ఫైల్స్" ముందు ప్రశ్న గుర్తు మరియు ఫార్వర్డ్ స్లాష్ ప్రముఖ స్లాష్ను ఐచ్ఛికం చేస్తాయి.
లైన్ 2:
RewriteCond
– ఇది రీరైట్కాండ్ నియమం అని ఈ ఆదేశం అపాచీకి చెబుతుంది.%{REQUEST_URI}
– ఇది అభ్యర్థించిన URI యొక్క పాత్ను కలిగి ఉన్న సర్వర్ వేరియబుల్.!
– ఇది నెగెషన్ ఆపరేటర్ అంటే “కాదు”. పరిస్థితిని తారుమారు చేయడానికి ఇది ఉపయోగించబడుతుంది./?files/Image/file2.jpg$
– ఇది అభ్యర్థించిన URI చివరిలో ఖచ్చితమైన స్ట్రింగ్ “/files/Image/file2.jpg”కి సరిపోలే సాధారణ వ్యక్తీకరణ. "ఫైల్స్" ముందు ప్రశ్న గుర్తు మరియు ఫార్వర్డ్ స్లాష్ ప్రముఖ స్లాష్ను ఐచ్ఛికం చేస్తాయి.
లైన్ 3:
RewriteRule
– ఈ ఆదేశం అపాచీకి ఇది తిరిగి వ్రాసే నియమం అని చెబుతుంది.^([_0-9a-zA-Z-]+/)?
– ఇది ఆల్ఫాన్యూమరిక్ అక్షరాలు మరియు హైఫన్ల ఐచ్ఛిక స్ట్రింగ్తో ప్రారంభమయ్యే అక్షరాల స్ట్రింగ్తో సరిపోలే సాధారణ వ్యక్తీకరణ. కుండలీకరణాలు సంగ్రహ సమూహాన్ని సూచిస్తాయి, అంటే సరిపోలిన వచనాన్ని భర్తీ స్ట్రింగ్లో ఉపయోగించవచ్చు.files/
– ఇది స్ట్రింగ్ “ఫైల్స్/”తో సరిపోలుతుంది.(.+)
- ఇది ఒకటి లేదా అంతకంటే ఎక్కువ సార్లు ఏదైనా అక్షరాల స్ట్రింగ్తో సరిపోలే మరొక క్యాప్చర్ గ్రూప్.wp-includes/ms-files.php?file=$2
– ఇది సరిపోలిన స్ట్రింగ్ను భర్తీ చేసే రీప్లేస్మెంట్ స్ట్రింగ్. ఇది అపాచీకి అభ్యర్థనను "wp-includes/ms-files.php"కి దారి మళ్లించమని చెబుతుంది, రెండవ క్యాప్చర్ గ్రూప్ ($2) విలువతో "ఫైల్" అనే ప్రశ్న పరామితిగా ఉంటుంది.[L]
– ఈ నియమం సరిపోలితే తదుపరి నిబంధనలను ప్రాసెస్ చేయడాన్ని ఆపివేయమని అపాచీకి చెప్పే ఫ్లాగ్ ఇది.
తిరిగి వ్రాసే నిబంధనలను తిరిగి వ్రాయడానికి ముందు ఉంచాలి లేదా ఈ ట్రిక్ పనిచేయదు. మీరు ఇలాంటి సమస్యను ఎదుర్కొంటే, మీ స్వంత ప్రయోజనాల కోసం ఈ పరిస్థితిని సవరించడం సులభం. పరిష్కారం నాకు చాలా బాగా పనిచేసింది, నా డిజైన్కు సరిపోని తక్కువ కావాల్సిన ఆల్ట్ టెక్స్ట్ కాకుండా కస్టమ్ గ్రాఫిక్లను ప్రత్యామ్నాయంగా మార్చడానికి నన్ను అనుమతిస్తుంది. ఇది మీ కోసం కూడా పని చేస్తుందని ఆశిద్దాం.