Apache හි mod_rewrite සක්‍රීය කරන්නේ කෙසේද?


167

මම මගේ උබුන්ටු පද්ධතියේ LAMP තොගය ස්ථාපනය කළෙමි.

යළි හරවා යැවීම මා වෙනුවෙන් ක්‍රියා නොකරයි. එය නිවැරදි කරන්නේ කෙසේදැයි මම නොදනිමි. මට උදව් කිරීමට කිසිවෙකුට හැකිද?


3
IMHO මෙම ප්‍රශ්නය උබුන්ටු විශේෂිත නොවන අතර එය සේවාදායක දෝෂයට සංක්‍රමණය කළ යුතුය .
පාවුලෝ

2
OP විසින් UBUNTU හි ලාම්පුව ස්ථාපනය කරන ලදී. ඔබට තව කොපමණ උබුන්ටු විශේෂිතද?
wojox

1
@wojov: මම මේ නඩුව ගැන දන්නේ නැහැ, නමුත් එම තර්කය ක්‍රියාත්මක වන්නේ නැහැ. "මෙම යෙදුම (උබුන්ටු මත) භාවිතා කරන්නේ කෙසේද?" බොහෝ දුරට මාතෘකාවෙන් බැහැර ය.

23
මෙය "මම යෙදුම භාවිතා කරන්නේ කෙසේද" නොව "උබුන්ටු හි විශේෂිත අංගයක් සක්‍රීය කරන්නේ කෙසේද" යන්න නොවේ. උබුන්ටු යටතේ ඇති අපාචේ වෙනස් මොඩියුලයක් සහ එක් එක් මොඩියුලය සහ අථත්‍ය ධාරකය ගොනුවක් වන /etc/apache2අතර එය a2*වැඩසටහන් භාවිතයෙන් සක්‍රීය කළ හැකිය .
ලෙකන්ස්ටයින්

ගැටලුව
සමනය

Answers:


241

නැවත ලිවීමේ මොඩියුලය සක්‍රිය කිරීම සඳහා, "apache2 enable මොඩියුලය නැවත ලිවීම" ධාවනය කරන්න:

sudo a2enmod rewrite

වෙනස්කම් යෙදීම සඳහා ඔබ වෙබ් සේවාදායකය නැවත ආරම්භ කළ යුතුය:

sudo service apache2 restart

ඔබ .htaccessලිපිගොනු වල mod_rewrite භාවිතා කිරීමට අදහස් කරන්නේ නම් , ඔබට .htaccessවෙනස් කිරීමෙන් ගොනු භාවිතය සක්‍රීය කළ AllowOverride Noneයුතුය AllowOverride FileInfo. සුපුරුදු වෙබ් අඩවිය සඳහා, සංස්කරණය කරන්න /etc/apache2/sites-available/default:

    <Directory /var/www/>
            Options Indexes FollowSymLinks MultiViews
            # changed from None to FileInfo
            AllowOverride FileInfo
            Order allow,deny
            allow from all
    </Directory>

එවැනි වෙනසකින් පසු, ඔබ නැවතත් Apache නැවත ආරම්භ කළ යුතුය.



ස්තූතියි! sudo a2enmod rewriteහා FileInfoඑය මට ස්ථාවර!
d -_- b

22
මට නම් එම ගොනුව /etc/apache2/apache2.conf විය. එහිදී මට එම වින්‍යාස ප්‍රවේශය හමු විය
doc_id

ඔව්, වෙනස්කම් දෙක ගැටළුව විසඳා ගන්න.
ඇඩලින්

එය මට වැඩ කරන්නේ නැත. මම මෙහි ප්‍රශ්නයක් පළ කළෙමි askubuntu.com/questions/809619/failing-to-rewrite-url
සුහයිල් ගුප්තා

50

මම සම්බන්ධයෙන් විශේෂ පිළිතුර (ඉහත මහා පිළිතුර සඳහා followup ලෙස) එකතු කිරීමට එඩිතර උබුන්ටු 14.04 සහ .htaccess:

14.04 දී, පෙරනිමි වින්‍යාස ගොනුවේ නම 000-default.conf:

sudo gedit /etc/apache2/sites-available/000-default.conf

ගොනුවේ අවසානයට පහත සඳහන් දෑ එක් කරන්න:

<Directory "/var/www/html">
    AllowOverride All
</Directory>

කිසියම් හේතුවක් නිසා, උබුන්ටු 14.04 සහ අපාචේ 2 හි මුල සකසා ඇත /www/html. ඔබ හොඳ පැරණි කිරීමට සර්වරයට මූල නැවත වෙනස් කිරීමට අවශ්ය නම් /www, open 000-default.confවෙනස්

DocumentRoot /var/www/html/

වෙත

DocumentRoot /var/www/

ඇත්තෙන්ම එය එසේ විය යුතුය

<Directory "/var/www">
    AllowOverride All
</Directory>

1
තොරතුරු සඳහා ස්තූතියි! මෙම / නව ක්‍රමය මඟින් අප සියලු වෙබ් අඩවි තබන ෆෝල්ඩරයක් ලෙස www භාවිතා කළ හැකි අතර html පෙරනිමියෙන් localhost සඳහා "වෙබ් අඩවිය" වේ. ඔබ ලෝකයට විවෘත වරායන් සමඟ සෙල්ලම් කරන්නේ නම් වැදගත් විය හැකිය - මේ ආකාරයෙන් ඔබේ ප්‍රාදේශීය හොස්ටයට වෙනත් ව්‍යාපෘතිවල ෆෝල්ඩර දැකිය නොහැක.
ව්ලැඩිමීර් වුකනාක්

1
එය මට වැඩ කරන්නේ නැත. මම භාවිතා කරන්නේ Ubuntu 14.04.4 LTS
සුහයිල් ගුප්තා
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.