2009-08-10 14 views
5

Mam następujący problem. Mam witrynę i blog w podkatalogu. Oba są php. Mam plik .htaccess w folderze głównym i inny w folderze blogu. Nie sądzę, że jest to istotne, ale skryptem bloga jest wordpress.jak napisać rewriteCond w .htaccess, aby wykluczyć podkatalog i jego podkatalogi.

Dodałem warunek w .htaccess korzenia pominąć wnioski złożone na blogu,

rewriteCond %{REQUEST_URI} !^/blog.* 

Oto jak to wygląda. Usunąłem resztę pliku:

Options +FollowSymlinks -MultiViews RewriteEngine on 

RewriteBase/RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /.*index\.php\ HTTP/ 

// my added line RewriteCond %{REQUEST_URI} !^/blog.* 


RewriteCond %{HTTP_HOST} !^www\. RewriteRule .* http://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L] 

RewriteRule ^(all)/([^/]+)/?$ story.php?title=$2 [L] RewriteRule ^(all)/?$ ?category=$1 [L] 

RewriteRule ^/?$ index.php [L] RewriteRule ^advanced-search/?$ advancedsearch.php [L] ... 

Problem, który mam, jest związany z żądaniami bloga. Na przykład czasami, gdy próbuję otworzyć adres URL, działa dobrze, czasami otwiera się strona główna (strona główna, a nie blog). Wydaje się to bardzo dziwne. Myślę, że jest on powiązany z hostem. Gdy host jest zajęty stroną blogu, nie można znaleźć żądania, więc żądanie przechodzi do katalogu głównego .htaccess.

mam 2 pytania:

  • Jak napisać regułę i gdzie miejsce to, aby wykluczyć wszelkie żądania FOR/blogu być przepisany przez korzeniowej .htaccess? Żądania bloga mogą wyglądać tak: http: //test.com/blog, http: //test.com/blog/, http: //test.com/blog/title, http: //test.com/blog/title /, http: //test.com/blog/category/title
  • czy ktoś ma pojęcie, co się dzieje? Dlaczego po otwarciu strony z blogiem otwiera się główna strona główna, a jeśli odświeżam stronę, przechodzi ona do strony z postem na blogu?
+0

mógłbyś formatowania kodu tak, że jest bardziej „czytelny” (= nowe linie w odpowiednich miejscach)? Dziękuję Ci! –

Odpowiedz

2

Zajrzyj do mod_rewrite documentation, w szczególności flagi -d w RewriteCond.

To powinno być coś takiego:

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule HERE 
Powiązane problemy