2013-05-21 6 views
0

Je vais les noix sur une règle de reqrite sur ma machine locale ...Réécrire avec chemin relatif

i même permis le journal de réécriture et ce que je reçois d'une seule charge de page sur l'url, il devrait réécrire:

ip - - [21/May/2013:08:13:18 +0200] [scxx/sid#7f6580ce32b8][rid#7f65810069e0/initial] (2) init rewrite engine with requested uri /catdev/sc/eprocure/ajax/ArticleSearch/SearchEngine/GetInitialData 
ip - - [21/May/2013:08:13:18 +0200] [scxx/sid#7f6580ce32b8][rid#7f65810069e0/initial] (3) applying pattern '^/catdev/sc/eprocure/ajax/(.+)/(\w+)/(\w+?)$' to uri '/catdev/sc/eprocure/ajax/ArticleSearch/SearchEng$ 
ip - - [21/May/2013:08:13:18 +0200] [scxx/sid#7f6580ce32b8][rid#7f65810069e0/initial] (2) rewrite '/catdev/sc/eprocure/ajax/ArticleSearch/SearchEngine/GetInitialData' -> '/catdev/sc/eprocure/ajax/handler.php?pa$ 
ip - - [21/May/2013:08:13:18 +0200] [scxx/sid#7f6580ce32b8][rid#7f65810069e0/initial] (3) split uri=/catdev/sc/eprocure/ajax/handler.php?path=ArticleSearch&class=SearchEngine&method=GetInitialData -> uri=/catde$ 
ip - - [21/May/2013:08:13:18 +0200] [scxx/sid#7f6580ce32b8][rid#7f65810069e0/initial] (2) local path result: /catdev/sc/eprocure/ajax/handler.php 
ip - - [21/May/2013:08:13:18 +0200] [scxx/sid#7f6580ce32b8][rid#7f65810069e0/initial] (1) go-ahead with /catdev/sc/eprocure/ajax/handler.php [OK] 

Le chemin est trouvé correctement, mais il ne charge toujours pas la page qu'il devrait être. Je ne sais pas pourquoi! Le journal des erreurs me l'indique.

[Tue May 21 08:13:18 2013] [error] [client xxx.xxx.xxx.xx] File does not exist: /catdev/sc/eprocure 

Maintenant, j'ai theese réécrire les règles i ma config apache:

<VirtualHost *:80> 
     ServerAdmin [email protected] 
     ServerName xxx 
     DocumentRoot /data1/www/somewherefarbeyond/ssl-htdocs 

     <Directory /data1/www/somewherefarbeyond/ssl-htdocs/> 
       Options Indexes FollowSymLinks MultiViews 
       AllowOverride None 
       Order allow,deny 
       allow from all 
     </Directory> 

     ErrorLog /data1/www/somewherefarbeyond/logs/error.log 

     # Possible values include: debug, info, notice, warn, error, crit, 
     # alert, emerg. 
     LogLevel warn 

     CustomLog /data1/www/somewherefarbeyond/logs/access.log combined 


     RewriteEngine On 
     RewriteRule ^/catdev/sc/eprocure/ajax/(.+)/(\w+)/(\w+?)$  /catdev/sc/eprocure/ajax/handler.php?path=$1&class=$2&method=$3 [L] 
     RewriteLog /data1/www/somewherefarbeyond/logs/accessREWRITE.log 
     RewriteLogLevel 9 

</VirtualHost> 

Puis Somone déchiqueter un peu de lumière dans cette chose?

il url im essayer est xxx/catdev/sc/eProcure/ajax/ArticleSearch/SearchEngine/GetInitialData

Note xxx est la main owerwriten Doman de mon serveur dev et ips sont obscurified à.

+0

strangly quand j'ajouter l'URL de redirection comme une url absolue, il est redirigé. mais à l'extérieur, pas intérieurement tristement Q_Q ... Quelqu'un at-il une idée pourquoi? – Sangoku

Répondre

0

Que diable.

Iw était un debian « Feature »

Je travaille sur un debian distro, et pour une raison étrange quand vous faites les réécritures dans la configuration de base, vous devez spécifier l'ensemble chemin d'accès et non le chemin relatif.

Faites simplement de l'url réécrite un emplacement de répertoire PAS une URL!

exemple:

votre dossier www est en

/motherofGod/wtf/www 

la racine de votre www est réglé sur /motherofGod/wtf/www dans le apatche

Votre domaine est lols.com

de sorte que le fichier lols.com/lol/wtf

qui a besoin de t o sur /motherofGod/wtf/www/some/crap/handler.php

ous devez spécifier le chemin complet non seulement le chemin relatif du répertoire www ~ _ ~