2013-06-06 4 views
1

Я пытаюсь получить мое очень простое правило перезаписи. Я пытаюсь переписать в файловую систему.Apache RewriteRule в файловую систему

Вот мой Htaccess

RewriteEngine On 
RewriteRule ^(.*) /var/www/sonarApps/main/com.sonar6.api/account/master/web 

Это не будет работать. Похоже, он всегда пытается загрузить его из Apache веб-корень, так

/apache/web/root/var/www/sonarApps/main/com.sonar6.api/account/master/web 

Это мой журнал

10.54.1.188 - - [06/Jun/2013:09:26:14 +0500] [...][rid#2b1b8b4f6ed0/initial] (2) init rewrite engine with requested uri /zef-test/master/api/index.php 
10.54.1.188 - - [06/Jun/2013:09:26:14 +0500] [...][rid#2b1b8b4f6ed0/initial] (1) pass through /zef-test/master/api/index.php 
10.54.1.188 - - [06/Jun/2013:09:26:14 +0500] [...][rid#2b1b8b4f6ed0/initial] (3) [perdir /var/www/sonarRoot/zef-test/master/api/] strip per-dir prefix: /var/www/sonarRoot/zef-test/master/api/index.php -> index.php 
10.54.1.188 - - [06/Jun/2013:09:26:14 +0500] [...][rid#2b1b8b4f6ed0/initial] (3) [perdir /var/www/sonarRoot/zef-test/master/api/] applying pattern '^(.*)' to uri 'index.php' 
10.54.1.188 - - [06/Jun/2013:09:26:14 +0500] [...][rid#2b1b8b4f6ed0/initial] (2) [perdir /var/www/sonarRoot/zef-test/master/api/] rewrite 'index.php' -> '/var/www/sonarApps/main/com.sonar6.api/account/master/web' 
10.54.1.188 - - [06/Jun/2013:09:26:14 +0500] [...][rid#2b1b8b4f6ed0/initial] (1) [perdir /var/www/sonarRoot/zef-test/master/api/] internal redirect with /var/www/sonarApps/main/com.sonar6.api/account/master/web [INTERNAL REDIRECT] 
10.54.1.188 - - [06/Jun/2013:09:26:14 +0500] [...][rid#2b1b8b502f10/initial/redir#1] (2) init rewrite engine with requested uri /var/www/sonarApps/main/com.sonar6.api/account/master/web 
10.54.1.188 - - [06/Jun/2013:09:26:14 +0500] [...][rid#2b1b8b502f10/initial/redir#1] (1) pass through /var/www/sonarApps/main/com.sonar6.api/account/master/web 
10.54.1.188 - - [06/Jun/2013:09:26:14 +0500] [...][rid#2b1b8b4faef0/initial] (2) init rewrite engine with requested uri /favicon.ico 
10.54.1.188 - - [06/Jun/2013:09:26:14 +0500] [...][rid#2b1b8b4faef0/initial] (1) pass through /favicon.ico 

Чтение апач mod_rewrite документ

A full filesystem path to a resource 
RewriteRule ^/games /usr/local/games/web 
This maps a request to an arbitrary location on your filesystem, much like the Alias directive. 

Это Безразлично» похоже, работает в моем случае.
Любые идеи?

Большое спасибо.

ответ

0

Это нормально: вы указываете, чтобы заменить путь таким же значением. Поэтому такое поведение ожидается.

Вам необходимо добавить путь, который вы захватили в подзаголовок. Более того, здесь ваш ^ не требуется:

RewriteRule (.*) /var/www/sonarApps/main/com.sonar6.api/account/master/web/$1 
+0

Thx FGE, но это по-прежнему не работает. Журнал такой же ... Любые другие идеи? – nolazybits

+0

Э-э, я знаю, почему сейчас. Эта форма правила перезаписи будет переписывать URL. Я не помню, как использовать его, чтобы перейти к файловой системе ... Но почему вы перенаправляете все? Разве ваш DocumentRoot не установлен? – fge

+0

Здесь он был для примера. Я хотел увидеть, что происходит переадресация. DocumentRoot установлен, но для этого конкретного url (указывая на подпапку моего корня документа) я хочу, чтобы он был перенаправлен в другую папку. – nolazybits

2

Filesystem правила перезаписи не поддерживается в соответствии с правилами каталога, из http://httpd.apache.org/docs/2.2/mod/mod_rewrite.html#rewriterule

file-system path 
Designates the location on the file-system of the resource to be delivered to the client. Substitutions are only treated as a file-system path when the rule is configured in server (virtualhost) context and the first component of the path in the substitution is exists in the file-system 
Смежные вопросы