нужно переписать для мобильного контроллера в Kohana - PullRequest
0 голосов
/ 08 сентября 2010

Я пытаюсь переписать в htaccess

mobile.domain.com/mobile/function в mobile.domain.com/function

Я думал, что ниже будет работать, но он думает, что функция является контроллером.

# Turn on URL rewriting
RewriteEngine On

# Installation directory
RewriteBase /

# Protect hidden files from being viewed
<Files .*>
 Order Deny,Allow
 Deny From All
</Files>

# Protect application and system files from being viewed
RewriteRule ^(?:application|modules|system)\b.* index.php/$0 [L]

# Allow any files or directories that exist to be displayed directly
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

# Rewrite all other URLs to index.php/URL
RewriteRule .* index.php/$0 [PT]

# Rewrite for Mobile
RewriteCond     %{HTTP_HOST}    ^mobile\.domain\.com$ [NC]
RewriteCond     %{REQUEST_URI}  !mobile [NC]
RewriteCond     %{REQUEST_FILENAME} !-f
RewriteRule     ^(.*)$          /mobile/$1 [L]

1 Ответ

2 голосов
/ 08 сентября 2010

Попробуйте поменять местами

# Allow any files or directories that exist to be displayed directly
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

# Rewrite all other URLs to index.php/URL
RewriteRule .* index.php/$0 [PT]

с

# Rewrite for Mobile
RewriteCond     %{HTTP_HOST}    ^mobile\.domain\.com$ [NC]
RewriteCond     %{REQUEST_URI}  !mobile [NC]
RewriteCond     %{REQUEST_FILENAME} !-f
RewriteRule     ^(.*)$          /mobile/$1 [L]

РЕДАКТИРОВАТЬ:

Хорошо, попробуйте это вместо того, что у вас есть:

# Turn on URL rewriting
RewriteEngine On

# Installation directory
RewriteBase /

# Protect hidden files from being viewed
<Files .*>
 Order Deny,Allow
 Deny From All
</Files>

# Protect application and system files from being viewed
RewriteRule ^(?:application|modules|system)\b.* index.php/$0 [L]

# Allow any files or directories that exist to be displayed directly
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

# Rewrite all other URLs to index.php/URL
RewriteRule .* index.php/$0 [PT]

# Rewrite for Mobile
RewriteCond     %{HTTP_HOST}    ^mobile\.domain\.com$ [NC]
RewriteCond     %{REQUEST_URI}  !mobile [NC]
RewriteCond     %{REQUEST_FILENAME} !-f
RewriteRule     ^(\w+)$          /mobile/$1


# Allow any files or directories that exist to be displayed directly
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

# Rewrite all other URLs to index.php/URL
RewriteRule .* index.php/$0 [PT]
...