2016-03-28 25 views
0

Yerel wordpress web sitesi ana sayfası iyi çalışıyor ancak mod_rewrite çalışmıyor. Yani, ana sayfa çalışır, ancak herhangi bir bağlantıyı tıklar tıklamaz Not Found alırım. Bu hatanınMod_rewrite mampı nasıl doğru şekilde etkinleştirilir?

Giriş çıkışı:

benim anlayış gereğince
[error] [client 127.0.0.1] File does not exist: /Applications/MAMP/htdocs/myweb/my-web-page-that-has-to-work, referer: http://myweb.dev/ 

, hata yerine veritabanından sayfası almak tot amacıyla mod_rewrite kullanmanın ilgili sayfasına arar anlamına gelir.

httpd.conf alakalı içerik:

# Virtual hosts, uncommented include 
Include /Applications/MAMP/conf/apache/extra/httpd-vhosts.conf 

... 

# AllowOverride All is here 
<Directory "/Applications/MAMP/htdocs"> 
Options All 
AllowOverride All 
Order allow,deny 
Allow from all 
XSendFilePath "/Applications/MAMP/htdocs" 
</Directory> 

httpd-vhosts.conf alakalı içerik:

<VirtualHost *:80> 
DocumentRoot /Applications/MAMP/htdocs 
ServerName localhost 
</VirtualHost> 

<VirtualHost *:80> 
DocumentRoot "/Applications/MAMP/htdocs/myweb" 
ServerName myweb.dev 
ServerAlias www.myweb.dev 
ErrorLog "/private/var/log/apache2/myweb-error_log" 
CustomLog "/private/var/log/apache2/myweb-access_log" common 
</VirtualHost> 

işe almak konusunda herhangi bir ipucu?

cevap

1

İlk önce Apache'nin modülü yüklediğinden emin olun. Bkz:

How to enable mod_rewrite for Apache 2.2 Sonra

<IfModule mod_rewrite.c> 
    RewriteEngine On 
    RewriteBase/
</IfModule> 

klasörünüzün içindeki bir .htaccess dosyasına bu ekleyebilir veya sadece bu gibi httpd-vhosts.conf ekleyin. CORRECTED:

<VirtualHost *:80> 
    DocumentRoot "/Applications/MAMP/htdocs/myweb" 
    ServerName myweb.dev 
    ServerAlias www.myweb.dev 
    ErrorLog "/private/var/log/apache2/myweb-error_log" 
    CustomLog "/private/var/log/apache2/myweb-access_log" common 


    <Directory "/Applications/MAMP/htdocs/myweb"> 
     AllowOverride All 
     Allow from all 

     <IfModule mod_rewrite.c> 
      RewriteEngine On 
      RewriteBase/
     </IfModule> 

    </Directory> 

</VirtualHost> 

Şimdi WP için kuralları yeniden eklemek ve çalışıp çalışmadığına bakın.

Apache'nin, modülünüzü bir PHP betiğiyle klasörünüzde mi yüklediğini kontrol edebilirsiniz. Bunu dene ve oradan devam et.

<?php 

if (in_array('mod_rewrite', apache_get_modules())) { 
    echo "Yes, Apache supports mod_rewrite."; 
} 

else { 
    echo "Apache is not loading mod_rewrite."; 
} 
+0

Teşekkürler, ama ben osx için MAMP kullanırım, ve 'a2enmod' diye bir şey yoktur. Ayrıca orada 'IfModule' koymaya çalıştım ama Apache Server başlamayacak. – FilipLuch

+0

Virtualhost'unuza ** RewriteEngine On ** ve ** AllowOverride All ** seçeneklerini eklemeyi denediniz mi? –

+0

sunucusu başlatılamıyor. Yalnızca satırları kaldırdığımda çalışır – FilipLuch

0
  1. İlk emin MAMP Apache modülünü yükler olun. MAMP bunu varsayılan olarak etkinleştirmiştir.
  2. Bunu Joomla için yaptım. Wordpress benzer olmalıdır. Mac, root (htdocs/yourwebsite /)
  3. 'daki htaccess.txt dosyasını yeniden adlandırmanıza izin vermez. Gizli dosyaları gösteren Eklentilerle oynamak yerine, en kolay yol Filezilla'yı açmak ve buradaki yerel dosyayı yeniden adlandırmaktır. Her zamanki wordpress htaccess'i kullanır ve wordpress-backend'de her zamanki gibi yeniden yazmak için .htaccess
  4. yeniden adlandırın.
İlgili konular