2010-06-15 4 views
0

Мой сайт - это php-сайт, но я добавил wordpress в папку/blog /. Файл .htaccess, указанный ниже, должен иметь доступ к папке/blog/folder, но я получаю ошибку 404, говорящую, что blog.php не существует.Apache mod rewrite .htaccess problem

<IfModule mod_rewrite.c> 
    RewriteEngine On 

    RewriteCond %{SCRIPT_FILENAME} !\.(gif|jpg|png)$ 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteRule ^(.*)/(.*)/$ /$1_$2.php [L] 
    RewriteRule ^(.*)/$ /$1.php [L] 
</IfModule> 

Любой, кто может вообще помочь?

+0

У вас есть собственный .htaccess от WordPress? –

+0

нет, нет другого .htaccess вообще –

ответ

1

Последний RewriteRule перенаправляет ваш запрос на /blog/ в index.php, вы должны добавить RewriteCond, чтобы проверить, находится ли запрос в папке блога.

RewriteCond %{REQUEST_URI} !^/blog/.* 
+0

спасибо за ответ. Мое понимание состоит в том, что условные обозначения, которые у меня есть, должны означать, что он никогда не попадает в правило перезаписи, если файл/папка существует. Очевидно, это не так, знаете ли вы, почему? В любом случае я получаю следующее при использовании вашего добавления: [code] Запрошенный URL /blog.php не найден на этом сервере. [/ Code] –

0

мне удалось это, используя код, приведенный ниже, по какой-то причине условными, которые были предложены, не работают (НЕНАВИЖУ .htaccess)

<IfModule mod_rewrite.c> 
    RewriteEngine On 

    RewriteRule ^(blog) - [L] 
    RewriteCond %{SCRIPT_FILENAME} !\.(gif|jpg|png)$ 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteRule ^(.*)/(.*)/$ /$1_$2.php [L] 
    RewriteRule ^(.*)/$ /$1.php [L] 
</IfModule> 
0

Добавление

RewriteRule ^(blog) - [L] 

в public_html /.htaccess после

RewriteEngine On 

работал для меня также на новой установке Wordpress с Fantastico на учетной записи Hostgator с поддоменом blog.example.com.