Ich habe ein REST-Framework, das, wenn plopped in einem beliebigen Verzeichnis sollte Just Work (TM), und es scheint gut zu funktionieren, wenn ich Projekte in Unterverzeichnissen habe, aber nicht, wenn es in root ist. Also, ein paar Beispielverzeichnisse gegeben;Apache Rewrite-Regeln redux
/
/project1
/bingo/project2
/hoopla/doopla/minor/project3
All diese Arbeiten gut, außer ich bin „Funnies“ getting *, wenn das Projekt in dem Root-Verzeichnis ausgeführt wird (etwas schwer zu erklären, nehme ich an, aber die zweite Ebene umschreibt arbeitet nicht richtig). Hier ist mein Versuch einer generischen .htaccess-Datei:
RewriteEngine On
RewriteRule ^static/ - [L]
RewriteCond %{REQUEST_URI} ^$
RewriteRule .* ./ [R,L]
RewriteRule ^index.php - [L]
RewriteRule (.*) index.php?q=$1 [QSA,PT]
(Und ja, haben alle Projekte ein Unterverzeichnis ./static, die von Neufassungen ignoriert) Was ich versuche eine Reihe von Rewrite-Regeln zu erreichen, ist, dass die Arbeit für die meisten Fälle (was wiederum das Projekt in ein Verzeichnis plüncht, das der Webserver bedient). Ich bin kein Rewrite-Regeln wiz durch eine Totale, und jeder gute Rat und gotchas würde geschätzt (und ja, ich habe durch zu viele einführende Artikel verschwunden. Ich brauche einige ernsthafte Saft.)
Mehr Infos zu den Funnies; Mein Webserver hat docroot an einer Stelle (unter/usr/share/apache2/default-site /), aber eine Reihe von Regeln, die besagt, dass/projects von einer anderen Stelle übernommen wird, die kein Unterverzeichnis von docroot ist (/ home/user/Projekte /). Wenn ich dorthin gehe, bekomme ich eine Liste von/projects-Unterverzeichnissen, und wenn eines dieser Unterverzeichnisse mit den vorgeschlagenen Rewrite-Regeln aufgerufen wird (restmapp), bekomme ich;
Die angeforderte URL /home/user/Projects/restmapp/index.php wurde auf diesem Server nicht gefunden.
Weitere Informationen über die 'Funnies' wäre hilfreich. –
Funnies der Beschreibung hinzugefügt. – AlexanderJohannesen