2010-03-12 30 views
13

Tôi có một tên miền và một wordpress-blog trên cùng một máy chủ. Bây giờ tôi có một vấn đề (ngạc nhiên). Wordpress nằm trên/httpdocs/blog/và tên miền trỏ đến/httpdocs/và tôi đang cố chuyển hướng nó tới/httpdocs/domain /. Nhưng, thật lạ lùng, tôi có permalinks trong Wordpress.Nhiều RewriteBase trong một tệp .htaccess?

Dưới đây là .htaccess hiện tại của tôi:

RewriteEngine On 

RewriteBase /blog/ 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule . /blog/index.php [L] 

RewriteBase/
RewriteCond %{HTTP_HOST} domain.com 
RewriteCond %{REQUEST_URI} !^/domain 
RewriteCond %{REQUEST_URI} !^/cgi-bin 
RewriteRule ^(.*)$ domain/$1 [L] 

Nhưng như bạn đã propably giả, điều này không làm việc. Permalinks của Wordpress ảnh hưởng đến/domain/cũng vậy, vì vậy hình ảnh của tôi và các url khác bị sai.

Bạn có lời khuyên nào không? Có thể sử dụng RewriteBase như thế này không?

Trả lời

8

Không, bạn chỉ có thể có một URL cơ sở. Chỉ cần viết lại các quy tắc của bạn:

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^blog/. /blog/index.php [L] 

RewriteCond %{HTTP_HOST} =example.com 
RewriteCond %{REQUEST_URI} !^/domain 
RewriteCond %{REQUEST_URI} !^/cgi-bin 
RewriteRule ^(.*)$ domain/$1 [L] 
+1

Có vẻ như chỉ thị 'RewriteBase' cuối cùng thắng cho toàn bộ tệp .htaccess. – MrWhite

+1

Trong thực tế, có vẻ như ý tưởng ban đầu đằng sau việc sử dụng 'RewriteBase' trong câu hỏi là sai anyway. Bạn sẽ cần phải viết mẫu 'RewriteRule' thành'^blog/.', bất kể giá trị của 'RewriteBase'. 'RewriteBase' không ảnh hưởng đến URI khớp với _pattern_, nó chỉ ảnh hưởng đến _substitutions_ tương đối. – MrWhite

Các vấn đề liên quan