2011-07-16 10 views
5

Zainstalowałem WordPress na EC2, zlokalizowanym w /var/www/html/wordpress. Postępowałem zgodnie ze wskazówkami WordPressa, aby skopiować index.php i .htaccess do katalogu głównego, który jest /var/www/html, oraz zmodyfikowałem index.php i ustawienie w panelu administracyjnym. Działa całkiem dobrze, jeśli trzymam się tylko domyślnego łącza, takiego jak: http://www.cubcanfly.com/?p=5, jednak inne opcje łącza stałego nie powiodą się, a właściwie wszystkie opcje permalink.Zainstaluj WordPress w swoim własnym katalogu, ale permalink nie działa.

Moja .htaccess jest

# BEGIN WordPress 
<IfModule mod_rewrite.c> 
    RewriteEngine On 
    RewriteBase/
    RewriteRule ^index\.php$ - [L] 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteRule . /index.php [L] 
</IfModule> 

w /etc/httpd/conf/httpd.conf

LoadModule rewrite_module modules/mod_rewrite.so 

NIE skomentował.

góry dzięki

Odpowiedz

7

końcu znaleźć problem. Jest to opcja AllowOverride w pliku httpd.conf, która znajduje się w /etc/httpd/conf/httpd.conf, "sudo find/-name httpd.conf -print" może ją łatwo znaleźć. Zmieniłem dowolny AllowOverride NONE-> ALL, gdzie mogę znaleźć w pliku. To po prostu działa, nawet bez wykonywania żadnych zmian do .htaccess

<IfModule mod_rewrite.c> 
    RewriteEngine On 
    RewriteBase/
    RewriteRule ^index\.php$ - [L] 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteRule . /index.php [L] 
</IfModule> 

ten .htaccess działa na mojego hosta, w którym jest zainstalowany wordpress w swoim katalogu.

Dziękuję @adlawson @Will, bez ciebie, nie mogłem znaleźć problemu.

http://codex.wordpress.org/Using_Permalinks ten oficjalny przewodnik wystarczy, aby użyć permalink nawet wordpress jest zainstalowany w podkatalogu.

4

Wystarczy popatrzeć na to stanowisko How does RewriteBase work in .htaccess

Musisz zmienić RewriteBase / do RewriteBase /wordpress

+3

I nie zapomnij, aby zmienić ostatni RewriteRule do /wordpress/index.php . – Will

+0

@adlawson @Will zmieniłem. Htaccess na ... RewriteBase/wordpress...RewriteRule. /wordpress/index.php [L] i permalink wciąż nie działają, dziękuję za pomoc. – HooYao

+0

@adlawson @Will dziękuję za pomoc, w końcu znajdę co tu się dzieje. Nie włączałem AllowOverride w httpd.conf. Kiedy już ustawię go na Wszystko, działa całkiem nieźle z plikiem .htaccess, który opublikowałem w głównym wątku. W rzeczywistości nie musimy robić nic^_^okrzyki. – HooYao

0

Nie trzeba było edytować pakietu RewriteBase w .htaccess. Problem tkwi w konfiguracji httpd dla maszyn EC2.

Moje .htaccess -

<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteBase/
RewriteRule ^index\.php$ - [L] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule . /index.php [L] 
</IfModule> 

W /etc/httpd/conf/httpd.conf -

<Directory /> 
    Options FollowSymLinks 
    AllowOverride All 
</Directory> 

# AllowOverride controls what directives may be placed in .htaccess files. 
# It can be "All", "None", or any combination of the keywords: 
# Options FileInfo AuthConfig Limit 
# 
AllowOverride All