2012-10-12 10 views
6

Ich benutze OJS und ich habe es in einem Ordner namens "Zeitschriften" installiert. Ich habe dort einige Zeitschriften erstellt (zum Beispiel "journal1", "journal2", etc.).mod-rewrite entferne Ordnernamen von der URL

Jetzt erhalte ich Pfade wie folgt aus: www.example.com/journals/index.php/journal1, www.example.com/journals/index.php/journal2 usw.

Was ich will, ist www.example.com/journals/index.php/journal1 zu aussehen wie www.example.com/index.php/journal1 abzubilden (die Zeitschrift Teil von URL zu entfernen).

Ich kann OJS nicht auf root verschieben, weil ich dort einige andere Dateien habe.

Hier ist die .htaccess-Datei, die ich derzeit benutze (es ist im Verzeichnis „Journale“ und mir eine 500 geben)

<IfModule mod_rewrite.c> 
RewriteEngine on 
RewriteCond $1 !^journals 
RewriteRule ^(.*) /journals/$1 [L] 
</IfModule> 

Auch hier ist der error.log

[Fri Oct 12 22:16:45 2012] [error] [client 127.0.0.1] Request exceeded the limit of 10 internal redirects due to probable configuration error. Use 'LimitInternalRecursion' to increase the limit if necessary. Use 'LogLevel debug' to get a backtrace. 
+0

Haben Sie eine 'index.php' Datei in Ihrem Dokument root? –

+0

Sie meinen, Projekt-Root- oder Site-Root - wenn Projekt-Root-dann ja, wenn Site-Root-dann nein. – MBanerjee

+0

Ich meinte, Site-Root, wie in, ob 'http: // www.example.com/index.php' tatsächlich zu einer vorhandenen Ressource aufgelöst. –

Antwort

3

Wenn Sie Setzen Sie diese Regeln in die htaccess-Datei in Ihrem Verzeichnis /journals, es verursacht eine Rewrite-Schleife. $1 beginnt nie mit Journalen, da Sie sich im Journals-Verzeichnis befinden. Daher wird die Regel weiterhin angewendet.

Sie werden so etwas in Ihrer .htaccess-Datei in Ihrem Website-root, das / Verzeichnis setzen müssen:

RewriteEngine On 
RewriteCond %{REQUEST_URI} !^/journals 
RewriteRule ^index\.php(.*)$ /journals/index.php$1 [L] 
+0

Sie wissen, was - es funktioniert. Ich kann Ihnen nicht genug danken :). – MBanerjee

+0

Hallo Jon-Its funktioniert gut.aber jetzt beide site/journals/index.php/journal1 und site/index.php/journal1 sind zugänglich. Wie kann ich site/journals/index.php/journal1 part und nur site/index deaktivieren .php/journal1 – MBanerjee

Verwandte Themen